Idealmente deberías tener un stock
campo en su Product
modelo para mantener el número de cantidades disponibles para ese producto.
Cuando alguien hace un pedido, un order
separado la instancia debe crearse con el número de cantidades del Product
especificado. El stock solo debe reducirse una vez que se recibe la devolución de llamada para ese order
o se recibe un webhook confirmando el pago.
Esto no evitaría que otros clientes realicen pedidos del mismo producto hasta que el artículo se haya vendido realmente.
Otro enfoque podría ser reducir el stock cuando el cliente va a la página de devolución de llamada y liberar el stock si el pago no se recibe dentro de un período de tiempo determinado. Se requeriría una tarea en segundo plano para esto.
F
objeto de django.models
mientras se reduce el stock para reducir el stock del valor DB y no del atributo de instancia.