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我的代码中没有输入错误,所以它一定是在键入问题时发生的。修正了。现在我觉得自己很愚蠢,我不敢相信我错过了这么明显的事情。不要!它发生了!