显示不同的list_display取决于用户

时间:2013-09-27 06:12:37

标签: django django-admin

我有一个模型包括一些列:A,B,C。当记录器是超级用户时,list_display将包括所有列(A,B,C),否则,其他用户只能看到部分列,例如:B和C.相关答案的大多数是用户get_form(...),但这改变了'exclude','fields'和'fieldsets',我想改变list_dispaly。

1 个答案:

答案 0 :(得分:12)

您可以使用changelist_view方法修改list_display

class MyModelAdmin(admin.ModelAdmin):
    list_display = ('A', 'B', 'C',)

    def changelist_view(self, request, extra_context=None):
        if not request.user.is_superuser:
            self.list_display = ('B', 'C',)
        return super(MyModelAdmin, self).changelist_view(request, extra_context)