ric*_*ier 5 django permissions django-rest-framework
我想序列化对象级权限 - 并向浏览器发送一个简单的True或False- 因此我触发了“允许编辑”代码。
我这样做是为了让用户没有向他们展示他们无法使用的功能。
有没有内置的方法来做到这一点?文档没有提到这一点。
我在序列化程序上尝试了以下操作:
has_permission = serializers.SerializerMethodField('check_permission')
def check_permission(self, obj):
return self.check_object_permissions(self.request, obj)
Run Code Online (Sandbox Code Playgroud)
但序列化程序没有方法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
Run Code Online (Sandbox Code Playgroud)
将自定义字段添加到序列化器中,如下所示:
class MyModelSerializer(serializers.ModelSerializer):
has_permissions = serializers.BooleanField(source='check_permissions', read_only=True)
class Meta:
model = models.MyModel
fields = ("myfield","has_permissions")
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2879 次 |
| 最近记录: |