我想序列化对象级权限 - 并向浏览器发送一个简单的True
或False
- 因此我会触发"允许编辑"代码。
我这样做是因为用户没有向他们展示他们无法使用的功能。
有没有内置的方法来做到这一点?文档没有提到这一点。
我在序列化程序上尝试了以下内容:
has_permission = serializers.SerializerMethodField('check_permission')
def check_permission(self, obj):
return self.check_object_permissions(self.request, obj)
但序列化程序没有方法check_object_permissions
- 属于权限对象。
答案 0 :(得分:1)
向模型添加方法以检查权限:
class MyModel(models.Model):
myfield = models.TextField(max_length=100)
def check_permissions(self):
# Perform your permissions functions
if (.....):
return True
else:
return False
将自定义字段添加到您的Serializer中,如下所示:
class MyModelSerializer(serializers.ModelSerializer):
has_permissions = serializers.BooleanField(source='check_permissions', read_only=True)
class Meta:
model = models.MyModel
fields = ("myfield","has_permissions")