Reputation: 43
I have following view:
class KlarnaCNO(generics.UpdateAPIView):
serializer_class = KlarnaCNOSerializer
queryset = Group.objects.all()
And this serializer:
class KlarnaCNOSerializer(serializers.ModelSerializer):
cnostring = serializers.SerializerMethodField()
class Meta:
model = Group
def get_cnostring(self, obj):
...
TokenExt = obj.uniquekey
...
return TokenExt
"uniquekey" is a value that is empty before I perform the PATCH-request with this value in body.
However the returned TokenExt will always stay empty. How can I access the POSTed uniquekey inside of this SerializerMethodField?
Upvotes: 1
Views: 1242
Reputation: 1052
You can pass the request in the context of serializer. And then access it via serializer context.
#in viewset
class KlarnaCNO(generics.UpdateAPIView):
serializer_class = KlarnaCNOSerializer
queryset = Group.objects.all()
def get_serializer_context(self):
"""Adds request to the context of serializer"""
return {"request": self.request}
#in serializer
def get_cnostring(self, obj):
#access request
request = self.context.get("request")
# directly the uniquekey
uniquekey = request.data.get("uniquekey")
...
Upvotes: 2