From 18782a8bc0adc1c98b2851eff81965136eb8ad5b Mon Sep 17 00:00:00 2001 From: Egor fureunoir Gorbunov Date: Sun, 1 Jun 2025 19:58:51 +0300 Subject: [PATCH] Features: 1) Add context to serializers in `create` method of `AddressViewSet`. Fixes: 1) Correct serialization flow by separating create and output serializers. Extra: 1) Minor variable renaming for clarity; 2) Improved readability of the `create` method. --- core/viewsets.py | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/core/viewsets.py b/core/viewsets.py index fb7221ea..922094b2 100644 --- a/core/viewsets.py +++ b/core/viewsets.py @@ -552,14 +552,22 @@ class AddressViewSet(EvibesViewSet): return AddressSerializer def create(self, request, **kwargs): - serializer = AddressCreateSerializer(data=request.data) - serializer.is_valid(raise_exception=True) + create_serializer = AddressCreateSerializer( + data=request.data, + context={"request": request} + ) + create_serializer.is_valid(raise_exception=True) - serializer = AddressSerializer(serializer.create(serializer.validated_data)) + address_obj = create_serializer.create(create_serializer.validated_data) + + output_serializer = AddressSerializer( + address_obj, + context={"request": request} + ) return Response( status=status.HTTP_201_CREATED, - data=serializer.data, + data=output_serializer.data, ) @action(detail=False, methods=["get"], url_path="autocomplete")