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.
This commit is contained in:
Egor Pavlovich Gorbunov 2025-06-01 19:58:51 +03:00
parent 194e2bef78
commit 18782a8bc0

View file

@ -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")