Django: функция отмены заказа не обновляет экземпляры CartOrder и CartOrderItemsPython

Программы на Python
Ответить
Anonymous
 Django: функция отмены заказа не обновляет экземпляры CartOrder и CartOrderItems

Сообщение Anonymous »

Я создаю приложение для электронной коммерции с помощью Django, и у меня возникли проблемы с функцией отмены заказа. Когда пользователь отменяет заказ, я хочу обновить поле Product_status экземпляров CartOrder и CartOrderItems до «отменено». Однако обновления не происходит, и я не вижу никаких сообщений об ошибках.
Вот мой код:
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, но ни один из подходов не работает.
Может ли кто-нибудь помочь мне понять, что происходит не так? Я проверил базу данных и обнаружил, что поле Product_status не обновляется ни для экземпляров CartOrder, ни для CartOrderItems.

Подробнее здесь: https://stackoverflow.com/questions/792 ... ritems-ins
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»