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.
This commit is contained in:
Egor Pavlovich Gorbunov 2025-10-01 18:51:11 +03:00
parent c6f2029285
commit 4bce9224fc

View file

@ -806,7 +806,10 @@ class OrderViewSet(EvibesViewSet):
def current(self, request):
if not request.user.is_authenticated:
raise PermissionDenied(permission_denied_message)
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,