django - 序列化程序中的关键错误 'request'

标签 django django-rest-framework

我试图在我的序列化程序中获取当前用户,以评估条件(用户是否喜欢这篇文章?),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/

相关文章:

python - 在共享虚拟主机服务器上使用 wsgi 和 virtualenv 部署 Django 项目,无需 root 访问权限

用于 channel Websocket 身份验证的 Django jwt 中间件

python - Django REST Framework POST 嵌套对象

python - 删除特定 url 路径的身份验证和权限

django获取最后插入的不同行

python - django 文档在本地设置

python - SSH 关闭时保持 Django runserver 事件

python - 错误 models.py Django

python - "detail": "Method\"GET\"not allowed." Django Rest Framework

python - 自定义 NotFound 异常 --- Django REST Framework