Idealmente dovresti avere un stock
campo nel tuo Product
modello per mantenere il numero di quantità disponibili per quel prodotto.
Quando qualcuno effettua un ordine, un order
separato l'istanza deve essere creata con il numero di quantità del Product
specificato. Lo stock dovrebbe essere ridotto solo una volta ricevuta la richiamata per quell'order
o viene ricevuto un webhook che conferma il pagamento.
Ciò non impedirebbe ad altri clienti di effettuare ordini per lo stesso prodotto fino a quando l'articolo non è stato effettivamente venduto.
Un altro approccio potrebbe essere quello di ridurre lo stock quando il cliente va alla pagina di richiamata e rilasciare lo stock se il pagamento non viene ricevuto entro un determinato periodo di tempo. Per questo sarebbe necessaria un'attività in background.
Nota: usa F
oggetto da django.models
mentre si riduce lo stock per ridurre lo stock dal valore del database e non dall'attributo dell'istanza.