Django 键错误';请求';在序列化程序中

Django 键错误';请求';在序列化程序中,django,django-rest-framework,Django,Django Rest Framework,我试图在我的序列化程序中获取当前用户,以评估一个条件(用户喜欢这篇文章吗?),这是我尝试过的,但似乎不起作用: def current_user(self): return self.context['request'].user class PostSerializer(serializers.ModelSerializer): liked = serializers.SerializerMethodField() def get_liked(self, obj):

我试图在我的序列化程序中获取当前用户,以评估一个条件(用户喜欢这篇文章吗?),这是我尝试过的,但似乎不起作用:

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)
当尝试
获取所需信息时
出现以下错误:

/api/posts/1处的键错误

“请求”


我在这里遗漏了什么吗?

您可以将视图中的上下文发送到序列化程序,如下所示:

@api_view(['GET'])
def post_item(request, pk):
    serializer = PostSerializer(track, context={'request': request})
    return Response(serializer.data)

您在此处拼错了“喜欢”:
def get\u lked(self,obj):
。试着这样做:
def get_like(self,obj):
@jape我的代码中没有输入错误,所以它一定是在键入问题时发生的。修正了。现在我觉得自己很愚蠢,我不敢相信我错过了这么明显的事情。不要!它发生了!