Заказ с 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), а затем ему нужно будет его оплатить. Заказ может иметь только один объект, назначенный на него.

  1. User creates an object
  2. User creates an order instance with object id.
  3. User pays a specified amount of money in the order.
  4. System waits for an API call from PayPal (webhook).

Логика работы веб-крючка следующая:

  1. Fetch order instance

  2. 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 требуется некоторое время, чтобы сделать запрос. Ожидаемый объект должен существовать в это время. Также невозможно создать экземпляр заказа с недействительным идентификатором объекта.

Информации, которую вы предоставили, недостаточно. Пожалуйста, попробуйте описать вашу проблему еще раз и предоставьте больше кода с выводом проблемы

Вернуться на верх