From 4bce9224fce3ded6fe49d86c1e1aa2e72e78d252 Mon Sep 17 00:00:00 2001 From: Egor fureunoir Gorbunov Date: Wed, 1 Oct 2025 18:51:11 +0300 Subject: [PATCH] Features: 1) Automatically create a new Order if no pending Order exists for authenticated users; Fixes: 1) Handle `Order.DoesNotExist` exception in `current` method of viewsets; Extra: 1) Minor improvement to user experience by ensuring an Order object is always returned. --- core/viewsets.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/core/viewsets.py b/core/viewsets.py index ca6ff0d2..78b91faa 100644 --- a/core/viewsets.py +++ b/core/viewsets.py @@ -806,7 +806,10 @@ class OrderViewSet(EvibesViewSet): def current(self, request): if not request.user.is_authenticated: raise PermissionDenied(permission_denied_message) - order = Order.objects.get(user=request.user, status="PENDING") + try: + order = Order.objects.get(user=request.user, status="PENDING") + except Order.DoesNotExist: + order = Order.objects.create(user=request.user) return Response( status=status.HTTP_200_OK, data=OrderDetailSerializer(order).data,