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) 


标签:Django
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

关注我们

一个IT知识分享的公众号