作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在我的 django 管理站点中,我想向组( Controller 组)中的用户隐藏一些字段
什么是最好的方法?我们可以做这样的事情吗?
这是我的代码,但它不起作用:
管理员.py:
class PriceFile(admin.ModelAdmin):
if User.groups.filter(name='Controllers').exists():
fieldsets = [(None, {'fields':['print_url', ('model', 'client'), 'description']})]
else:
fieldsets = [(None, {'fields':['print_url', ('model', 'client'), 'description', 'total_sum', 'margin_percent', 'final_price']})]
最佳答案
你已经解决了吗?
Django Admins 有一个名为 get_fieldsets
的方法,您可以使用它来决定可以使用哪个字段集来添加。你可以看起来像下面这样:
@admin.register(ModelName)
class ModelAdmin(admin.ModelAdmin):
def get_fieldsets(self, request, obj=None):
if request.user.is_superuser:
return self.superuser_fieldsets
else:
return self.staff_fieldsets
staff_fieldsets = (
(None, {'fields': ('regular_field_a', 'regular_field_b')})
)
superuser_fieldsets = (
(None, {'fields': ('regular_field_a', 'regular_field_b')}),
(None, {'fields': ('super_user_field_a', 'super_user_field_b')})
)
get_fieldsets
函数可以访问请求和对象,我在这里所做的取决于我们服务的用户状态(is_superuser
)不同的字段集。您可以添加自己的要求,例如如果用户是身份验证组的一部分,或者它是否取决于您看到的对象。
关于django - Django 管理站点中的不同字段集取决于用户组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57208457/
我是一名优秀的程序员,十分优秀!