django - 仅允许特定用户和超级用户编辑模型中的特定字段
问题描述
我有一个名为 test 的模型。
测试模型具有三个字段 - 问题、答案、已验证。
超级用户 - 管理员 User1- John User2- Darren
admin.py 文件
model = Test
def get_fields(self, request, obj=None):
fields = ['question','answer','verified']
if request.user.is_superuser:
fields.append('verified')
return fields
此代码仅允许超级用户编辑已验证的记录。但我想要的是我必须授予某些用户编辑此字段的权限。
该字段应仅对 admin 和 john 可见,而对 Darren 不可见。Darren 将有权编辑模型中除此已验证字段之外的所有字段。
解决方案
您可以更改检查超级用户的行以添加您喜欢的任何条件。例如,如果您创建一个名为“admin”的组,此条件将允许分配到该组的用户也可以编辑“已验证”
if request.user.is_superuser or request.user.groups.filter(name='admin').exists():
fields.append('verified')
推荐阅读
- python - python服务访问ajax调用,CORS错误
- python - 如何使用机器学习和 LSTM 确定价格预测中的层数和单位数?
- reactjs - 如何在反应涟漪上使用 onClick?
- angular - Matomo - Angular:跟踪页面视图和事件仅部分工作
- angular-cli - 架构验证失败并出现以下错误:数据路径“”应该具有必需的属性“browserTarget”
- python-3.x - 在 Tkinter 中使用 VGA 字体
- list - Arrow-kt:如何转动 Either
>> 进入 > - expression - 正则表达式以捕获逗号分隔字符串中的最后一个数字
- apache-spark - 启动 Spark History Server 以写入 minIO
- javascript - 来自猫鼬的循环自定义数组返回空