Ошибка RelatedObjectDoesNotExist в методе сохранения в Django

Я писал метод сохранения в модели OrderCompleteStatus. Я хочу сделать так, чтобы в любом заказе, если OrderCompleteStatus.pickup равен True, то для элементов этого же заказа, и для OrderItemCompleteStatus этого элемента, я хочу сделать OrderItemCompleteStatus.pickup = True. Я пробовал, но получаю ошибку RelatedObjectDoesNotExists в строке 458. Мои модели :

class OrderCompleteStatus(models.Model):
     order = models.OneToOneField('Order', on_delete=models.SET_NULL , null=True)
     warehouse =models.BooleanField(default=False)
     pickup = models.BooleanField(default=False)
     delivered =  models.BooleanField(default=False)
     received_by_customer =  models.BooleanField(default=False)

def __str__(self):
    return "Order" + " " + str(self.order)

class Meta:
    verbose_name_plural = 'Order Complete Status'

def save(self, *args, **kwargs):
    super().save(*args, **kwargs)
    if self.warehouse and self.pickup and self.delivered :
        self.order.complete = True
        self.order.save(update_fields=['complete'])
        
    if self.pickup :
        order = self.order
        orderitems = order.orderitem_set.all()
        for item in orderitems:
            item.orderitemcompletestatus.pickup = True
            item.orderitemcompletestatus.save(update_fields=['pickup'])

class OrderItemCompleteStatus(models.Model):
     order_item = models.OneToOneField('OrderItem', on_delete=models.SET_NULL , null=True)
     seller = models.BooleanField(default=False)
     warehouse = models.BooleanField(default=False)
     pickup = models.BooleanField(default=False)
     delivered = models.BooleanField(default=False)
     received_by_customer = models.BooleanField(default=False)

     def __str__(self):
         return "Order Item " + " " + str(self.order_item)

     class Meta:
         verbose_name_plural = 'Order Item Complete Status'

     def save(self, *args, **kwargs):
         super().save(*args, **kwargs)
         if self.seller and self.warehouse and self.pickup and self.delivered :
             self.order_item.complete = True
             self.order_item.save(update_fields=['complete'])

class OrderItem(models.Model):
     product = models.ForeignKey('Product' , on_delete=models.SET_NULL ,null=True)
     complete = models.BooleanField(default=False)
     order = models.ForeignKey('Order',on_delete= models.SET_NULL ,null= True)
     quantity = models.PositiveSmallIntegerField(default=0 , null=True , blank = False)
     unit_price = models.FloatField(null=True)
     colour= models.CharField(max_length=200 ,null=True , blank=True)
     size= models.CharField(max_length=200 ,null=True , blank=True)
     date_ordered = models.DateTimeField(auto_now_add=True,null=True)

     def __str__(self):
         return "OrderItem" + " " + str(self.id)
Вернуться на верх