Как получить информацию о текущем пользователе в Django Rest Framework? - PullRequest
0 голосов
/ 11 апреля 2020

Я работаю над своим API на основе Django Rest Framework. Мне удалось автоматически добавить текущего пользователя по запросу POST через HiddenField. Теперь я хочу вернуть некоторую дополнительную информацию о текущем пользователе в запросе 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')

Как получить доступ к сведениям о текущем пользователе и добавить его в поля только для чтения

1 Ответ

0 голосов
/ 11 апреля 2020

Если вы хотите сериализовать user информацию, но только для чтения. Это может сделать работу:

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

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