Как я могу предотвратить создание нескольких экземпляров при многократном запросе в django?
Привет всем, у меня есть проект, включающий функцию оплаты между пользователем и пользователем. Но у меня есть проблема, когда много пользователей покупают продукт.Много объектов оплаты будет создано больше, чем доступных продуктов. Как я могу решить эту проблему?
products_avaliable = Product.objects.filter(on_sell=true)
for product in products_avaliable:
payment = Payment()
payment.buyer = ....
payment.seller = product.owner
payment.save()
product.on_sell = False
product.save()
когда добавить делей
products_avaliable = Product.objects.filter(on_sell=true)
for product in products_avaliable:
payment = Payment()
payment.buyer = ....
payment.seller = product.owner
payment.save()
time.sleep(10) # simulate to slow server or many request
product.on_sell = False
product.save()
когда я пытаюсь сделать time.delay перед созданием платежа (симуляция, когда сервер медленный или может запросить пользователь), платеж создаст много объектов
Вы можете проверить, является ли объект on_sell
перед фиксацией в БД:
for product in products_avaliable:
payment = Payment()
payment.buyer = ....
payment.seller = product.owner
product.on_sell = False
product.refresh_from_db() # update the object
if product.on_sell:
payment.save()
product.save()
else:
...