В идеалния случай трябва да имате stock поле във вашия Prodduct модел, за да запази броя на наличните количества за този продукт.
Когато някой направи поръчка, отделна order екземплярът трябва да бъде създаден с броя на количествата на Prodduct посочени. Наличността трябва да бъде намалена само след като бъде получено обратното извикване за тази order или се получава уебкукичка, потвърждаваща плащането.
Това няма да попречи на други клиенти да правят поръчки за същия продукт, докато артикулът действително не бъде продаден.
Друг подход може да бъде намаляване на наличността, когато клиентът отиде на страницата за обратно извикване и освобождаване на наличността, ако плащането не бъде получено в рамките на определен период от време. За това ще е необходима фонова задача.
Забележка: използвайте F обект от django.models докато намалява запаса, за да намали запаса от стойността на DB, а не от атрибута на екземпляра.