首页 > 解决方案 > 如何在 Django Rest Framework 中获取当前用户的详细信息?

问题描述

我正在开发基于 Django Rest Framework 的 API。我已经设法通过 HiddenField 在 POST 请求中自动添加当前用户。现在我想在博文的 GET 请求中返回一些关于当前用户的附加信息。

我试图从CurrentUserDefault()和通过访问这些数据source='author.username'。第一个根本不起作用,第二个选项在保存时中断,因为请求中没有提供作者。

class BlogSerializer(serializers.HyperlinkedModelSerializer):
    author = serializers.HiddenField(default=serializers.CurrentUserDefault())
    # author_name = serializers.ReadOnlyField(source=serializers.CurrentUserDefault().name)
    # author_username = serializers.ReadOnlyField(source='author.username')

如何访问当前用户的详细信息并将其附加为只读字段?

标签: pythondjangopython-3.xdjango-modelsdjango-rest-framework

解决方案


如果要序列化user信息,但以只读方式。这可以完成这项工作:

class UserSerializer(serializers.ModelSerializer):
    class Meta:
        model = User
        fields = (<what you want>)

class BlogSerializer(serializers.HyperlinkedModelSerializer):
    author = UserSerializer(read_only=True)

推荐阅读