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:
parent
194e2bef78
commit
18782a8bc0
1 changed files with 12 additions and 4 deletions
|
|
@ -552,14 +552,22 @@ class AddressViewSet(EvibesViewSet):
|
||||||
return AddressSerializer
|
return AddressSerializer
|
||||||
|
|
||||||
def create(self, request, **kwargs):
|
def create(self, request, **kwargs):
|
||||||
serializer = AddressCreateSerializer(data=request.data)
|
create_serializer = AddressCreateSerializer(
|
||||||
serializer.is_valid(raise_exception=True)
|
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(
|
return Response(
|
||||||
status=status.HTTP_201_CREATED,
|
status=status.HTTP_201_CREATED,
|
||||||
data=serializer.data,
|
data=output_serializer.data,
|
||||||
)
|
)
|
||||||
|
|
||||||
@action(detail=False, methods=["get"], url_path="autocomplete")
|
@action(detail=False, methods=["get"], url_path="autocomplete")
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue