gpt4 book ai didi

Django Rest Framework 序列化权限

转载 作者:行者123 更新时间:2023-12-01 15:49:46 27 4
gpt4 key购买 nike

我想序列化对象级权限 - 并发送一个简单的 TrueFalse到浏览器 - 因此我触发了“允许编辑”代码。

我这样做是为了让用户没有向他们展示他们无法使用的功能。

有没有内置的方法来做到这一点?文档没有提到这一点。

我在序列化程序上尝试了以下操作:

has_permission = serializers.SerializerMethodField('check_permission')

def check_permission(self, obj):
return self.check_object_permissions(self.request, obj)

但序列化程序没有方法 check_object_permissions - 属于权限对象。

最佳答案

将方法添加到您的模型以检查权限:

 class MyModel(models.Model):
myfield = models.TextField(max_length=100)

def check_permissions(self):
# Perform your permissions functions
if (.....):
return True
else:
return False

将自定义字段添加到您的序列化程序中,如下所示:
  class MyModelSerializer(serializers.ModelSerializer):        
has_permissions = serializers.BooleanField(source='check_permissions', read_only=True)
class Meta:
model = models.MyModel
fields = ("myfield","has_permissions")

关于Django Rest Framework 序列化权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21082937/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com