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