Django管理站点中的不同字段集取决于用户组
在我的django管理站点中,我想向组控制器组中的用户隐藏一些字段 最好的方法是什么?我们可以这样做吗 这是我的代码,但不起作用: admin.py:Django管理站点中的不同字段集取决于用户组,django,python-3.x,django-admin,Django,Python 3.x,Django Admin,在我的django管理站点中,我想向组控制器组中的用户隐藏一些字段 最好的方法是什么?我们可以这样做吗 这是我的代码,但不起作用: admin.py: class PriceFile(admin.ModelAdmin): if User.groups.filter(name='Controllers').exists(): fieldsets = [(None, {'fields':['print_url', ('model', 'client'), 'descripti
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_fieldset的方法,您可以使用该方法来决定可以使用哪个字段集来添加。您的配置可能如下所示:
@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_fieldset可以访问请求和对象,我在这里所做的是取决于用户的状态是_superuser。在本例中,我们提供了一个不同的字段集。您可以添加自己的需求,例如,如果用户是身份验证组的一部分,或者取决于您看到的对象