Django的REST框架是老板

问题描述 投票:0回答:1

我想创建我的串行现场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对象序列化,以使这项工作?我应该在视图级别进行测试呢?

谢谢!

python django django-rest-framework
1个回答
1
投票
def get_is_owner(self, obj):
    """
    you can pass request in context
    """
    return self.context['request'].user.id == obj.user.id

当你调用serializer通过requestcontext像下面的代码;

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

© www.soinside.com 2019 - 2024. All rights reserved.