注册django管理时,我继承了另一个管理员,但我不知道为什么要更改list_display模型。
让我用代码详细解释一下情况。
@admin.register(User)
class UserAdmin(models.Model):
list_display = [a.name for a in User._meta.concrete_fields]
@admin.register(Sales)
class SalesAdmin(UserAdmin):
pass
根据上面的代码,SalesAdmin管理似乎是从UserAdmin继承的。在这种情况下,用户模型的list_display不应该出现在list_display中吗?
我不明白为什么销售模式的list_display会出现。如果我想在继承list_display的同时显示销售模型的UserAdmin,难道不需要按照如下所示重新声明list_display吗?
@admin.register(User)
class UserAdmin(models.Model):
list_display = [a.name for a in User._meta.concrete_fields]
@admin.register(Sales)
class SalesAdmin(UserAdmin):
list_display = [a.name for a in Sales._meta.concrete_fields]
我没有重新声明list_display,但我不知道它是否自动输出为已更改模型的list_display。如果有人知道,请解释。
发布于 2022-04-28 08:37:21
重写get_list_display
方法以返回基于当前模型的动态list_display。
FYI,您的管理类应该从admin.ModelAdmin
而不是models.Model
继承。
@admin.register(User)
class UserAdmin(admin.ModelAdmin):
def get_list_display(self, request):
return [a.name for a in self.model._meta.concrete_fields]
@admin.register(Sales)
class SalesAdmin(UserAdmin):
pass
https://stackoverflow.com/questions/72040396
复制相似问题