django - 如何拒绝子用户仅编辑一个字段并且只有管理员有权访问它的权限...?
问题描述
这是我的 Django 模型
type_choices = [
('Yes', 'Yes'),
('no', 'no'),
]
verified= models.CharField(max_length=50,default='----',choices=type_choices)
name = models.CharField(max_length=50,
default='',
validators=[MinLengthValidator(4)])
age= models.TextField(max_length=5000,
default='')
我有一条名为 Verified 的记录,我必须拒绝所有用户使用该记录的权限,并且该记录只能由管理员使用。
您能帮我如何限制其他用户更改此记录,并且只有可读且管理员应该有权更改记录的值吗?
解决方案
您必须覆盖get_fields
您的 ModelAdmin,您可以动态返回每个请求的字段列表
class MyModelAdmin(admin.ModelAdmin):
model = MyModel
def get_fields(self, request, obj=None):
fields = ['name', 'age']
if request.user.is_superuser:
fields.append('verified')
return fields
推荐阅读
- java - 在 IntelliJ 上调用 .class 处理时遇到问题
- javascript - 如何替换 package.json 脚本中的 cpx
- visual-studio - VS2022如何带回经典风格?
- graph - 在 PowerBI 中使用不同的列制作堆叠条
- r - 如何使用 pivot_longer 和 names_pattern 学习分组功能
- mysql - Laravel MTG 数据库设计
- google-kubernetes-engine - 如何使用 Envoy 和 gRPC-Web 配置 GKE Autopilot
- node.js - 在 NodeJS 中使用证书和 RSA 密钥获取令牌时出错
- python - 如何在 Python 中注释 mixin
- python - 获取 TypeError:“int”类型的参数不可迭代