1. 如何在列表页展示计算字段¶
你有一个Origin
模型 的admin,向下面这样:
@admin.register(Origin)
class OriginAdmin(admin.ModelAdmin):
list_display = ("name",)
除了名称,我们还希望显示每个Origin
的Hero
英雄数量和Villain
反派数量,这些不是Origin
上的DB字段。 您可以通过两种方式执行此操作。
1.1 在模型上添加方法¶
你可以为你的Origin
添加2个方法,像下面这样:
def hero_count(self, obj):
return obj.hero_set.count()
def villain_count(self, obj):
return obj.villain_set.count()
list_display
改为list_display = ("name", "hero_count", "villain_count")
1.2 为ModelAdmin添加方法¶
如果你不想再model上添加方法, 你可以在ModelAdmin上添加
def hero_count(self, obj):
return obj.hero_set.count()
def villain_count(self, obj):
return obj.villain_set.count()
list_display
改为list_display = ("name", "hero_count", "villain_count")