Fixes: save() method for Order model fix

This commit is contained in:
Egor Pavlovich Gorbunov 2025-06-07 16:33:55 +03:00
parent 14fe032722
commit 9e06fa3419

View file

@ -524,7 +524,10 @@ class Order(ExportModelOperationsMixin("order"), NiceModel):
return self.attributes.get("is_business", False) if self.attributes else False
def save(self, **kwargs):
if self.user.orders.filter(status="PENDING").count() > 1 and self.status == "PENDING":
pending_orders = 0
if self.user:
pending_orders = self.user.orders.filter(status="PENDING").count()
if self.status == "PENDING" and pending_orders > 1:
raise ValueError(_("a user must have only one pending order at a time"))
return super().save(**kwargs)
@ -672,7 +675,6 @@ class Order(ExportModelOperationsMixin("order"), NiceModel):
promocode_uuid: str | None = None,
billing_address: str | None = None,
shipping_address: str | None = None,
**kwargs,
) -> Self | Transaction | None:
if config.DISABLED_COMMERCE:
raise DisabledCommerceError(_("you can not buy at this moment, please try again in a few minutes"))