在管理员中我想显示差异。 list_filter为超级用户和员工用户。怎么可能。
当超级用户登录时:
list_filter = ('is_active', 'membership_type', 'is_blocked')
对于权限有限的员工用户,list_filters应为:
list_filter = ('is_active',)
答案 0 :(得分:4)
将此方法添加到Admin类
def get_list_filter(self, request):
if request.user.is_superuser:
return ('is_active', 'membership_type', 'is_blocked')
return ('is_active',)
答案 1 :(得分:0)
我找到了上述问题的解决方案。我在changelist_view函数中更改了list_filters。
def changelist_view(self, request, extra_context=None):
if request.user.is_superuser:
self.list_filter = ('is_active', 'membership_type', 'is_blocked')
else:
self.list_filter = ('is_active',)
return super(CustomUserAdmin, self).changelist_view(request)