django之序列化程序中的关键错误 'request'
xing901022
阅读:62
2025-06-02 22:19:02
评论:0
我试图在我的序列化程序中获取当前用户,以评估条件(用户是否喜欢这篇文章?),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)
声明
1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。



