Django: Функциональность отмены заказа не обновляет экземпляры CartOrder и CartOrderItems

Я создаю приложение для электронной коммерции на Django, и у меня возникли проблемы с функцией отмены заказа. Когда пользователь отменяет заказ, я хочу обновить поле product_status в экземплярах CartOrder и CartOrderItems до «cancelled». Однако обновление не происходит, и я не вижу никаких сообщений об ошибках.

Вот мой код:

models.py:

class CartOrder(models.Model):  
   # ...  
   product_status = models.CharField(choices=STATUS_CHOICE, max_length=30, default="processing")  
  
class CartOrderItems(models.Model):  
   # ...  
   product_status = models.CharField(max_length=200, blank=True, null=True)  
   order = models.ForeignKey(CartOrder, on_delete=models.CASCADE, related_name="cartorderitems")

views.py:

def create_cancel(request, oid):  
   if request.method == "POST":  
      user = request.user  
  
      try:  
        # Fetch the CartOrder instance  
        order = get_object_or_404(CartOrder, id=oid)  
        order.product_status = "cancelled"  
        order.save()  
  
        # Fetch the related CartOrderItems instance  
        order_item = order.cartorderitems.first()  
        order_item.product_status = "cancelled"  
        order_item.save()  
  
        # Fetch the associated product  
        product = get_object_or_404(Product, pid=order.pid)  
  
        # Additional product-related operations can be done here, if needed  
        messages.success(request, "Order successfully cancelled.")  
  
      except Exception as e:  
        messages.error(request, f"An error occurred: {e}")  
  
      return redirect("core:dashboard")  
   else:  
      messages.error(request, "Invalid request method.")  
      return redirect("core:dashboard")

Я пробовал использовать order.cartorderitems.first() и CartOrderItems.objects.filter(order=order).first(), чтобы получить связанный CartOrderItems instance, но ни тот, ни другой подход не работает.

Может ли кто-нибудь помочь мне понять, что происходит не так? Я проверил базу данных, и поле product_status не обновляется ни для CartOrder, ни для CartOrderItems экземпляров.

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