Django admin——admin继承
Django admin - admin inheritance
在注册django admin的时候继承了另一个admin,但是不知道为什么list_display的model变了
我用代码详细说明情况
@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 Admin 似乎继承自 UserAdmin。
在这种情况下,User模型的list_display不应该出现在list_display中吗?
不明白销售模式的list_display为什么会出来。
如果我想在继承 UserAdmin 的同时显示 Sales 模型的 list_display,难道我不应该像下面那样重新声明 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。有知道的请解释一下。
将 get_list_display
方法重写为 return 基于当前模型的动态 list_display。
仅供参考,您的管理员 类 应该继承自 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
在注册django admin的时候继承了另一个admin,但是不知道为什么list_display的model变了
我用代码详细说明情况
@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 Admin 似乎继承自 UserAdmin。 在这种情况下,User模型的list_display不应该出现在list_display中吗?
不明白销售模式的list_display为什么会出来。 如果我想在继承 UserAdmin 的同时显示 Sales 模型的 list_display,难道我不应该像下面那样重新声明 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。有知道的请解释一下。
将 get_list_display
方法重写为 return 基于当前模型的动态 list_display。
仅供参考,您的管理员 类 应该继承自 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