我试图在我的序列化程序中获取当前用户,以评估条件(用户是否喜欢这篇文章?),this answer是我尝试过的,但似乎不起作用:
def current_user(self):
return self.context['request'].user
class PostSerializer(serializers.ModelSerializer):
liked = serializers.SerializerMethodField()
def get_liked(self, obj):
return str(current_user(self))
class Meta:
model = Track
fields = ('foo', 'liked')
我非常简单的观点:
@api_view(['GET'])
def post_item(request, pk):
serializer = PostSerializer(post)
return Response(serializer.data)
尝试时
get_liked
这是引发的错误:KeyError at /api/posts/1
'request'
我在这里错过了什么吗?
最佳答案
您可以将上下文从您的 View 发送到序列化程序,如下所示:
@api_view(['GET'])
def post_item(request, pk):
serializer = PostSerializer(track, context={'request': request})
return Response(serializer.data)
关于django - 序列化程序中的关键错误 'request',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36731438/