Django Rest Framework является владельцем - PullRequest
0 голосов
/ 06 февраля 2019

Я хотел бы создать поле is_owner для моего сериализатора, которое будет возвращать, принадлежит ли сериализованный объект пользователю, выполняющему запрос.Что-то вроде:

"""Defines Some serializer with an owner"""
from rest_framework import serializers

class SomeSerializer(serializers.ModelSerializer):
    """Returns the is_owner field as a boolean"""
    is_owner = serializers.SerializerMethodField()

    class Meta:
        model = SomeModel
        fields = ('is_owner',)

 def get_is_owner(self, obj):
    """Will return True if the requesting user is the owner, else false"""
    return request.user.id == obj.user.id

Это способ сделать это?Должен ли я передать объект request в сериализатор, чтобы заставить эту работу?Должен ли я проверить это на уровне просмотра?

Спасибо!

1 Ответ

0 голосов
/ 06 февраля 2019
def get_is_owner(self, obj):
    """
    you can pass request in context
    """
    return self.context['request'].user.id == obj.user.id

при вызове serializer пропуска request в context, как следующий код;

serializer = SomeSerializer(instance, context={'request': request, ...})

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...