Заказ с id=<id> не имел ожидаемого object=<obj_name>
Иногда объект моего заказа не имеет ожидаемого объекта внешнего ключа.
Вот моя модель, которая представляет Paypal Order (некоторые поля пропущены):
class Order(models.Model):
order_id = models.CharField(...)
# naive polymorphism
object1 = models.ForeignKey(...)
object2 = models.ForeignKey(...)
object3 = models.ForeignKey(...)
Логика следующая: Пользователь может создать один из объектов (объект1, объект2, объект3), а затем ему нужно будет его оплатить. Заказ может иметь только один объект, назначенный на него.
- User creates an object
- User creates an order instance with object id.
- User pays a specified amount of money in the order.
- System waits for an API call from PayPal (webhook).
Логика работы веб-крючка следующая:
Fetch order instance
Fetch object by a sequence of ifs:
if order.object1: handle_object1(order.object1) if order.object2: handle_object1(order.object2) if order.object3: handle_object1(order.object3) else: raise Exception() At this point, I can get an exception, that the expected object doesn't exist. Later when I try to fetch the expected object from DB - it is there.
Странно, ведь PayPal требуется некоторое время, чтобы сделать запрос. Ожидаемый объект должен существовать в это время. Также невозможно создать экземпляр заказа с недействительным идентификатором объекта.
Информации, которую вы предоставили, недостаточно. Пожалуйста, попробуйте описать вашу проблему еще раз и предоставьте больше кода с выводом проблемы