假设我有一个Book模型,其中包含指向Publisher模型的外键。
如何以一种可以使用内置排序的方式在Django admin中显示一列包含每个出版商出版的书籍数量的列?
我遇到了同样的问题(我无法更改模型的经理来添加慢速注释或联接)。此处两个答案的组合有效。@Andre非常接近,Django Admin支持仅修改admin的查询集,因此在此处应用相同的逻辑,然后使用admin_order_field属性。当然,你仍然需要将新的管理字段添加到list_display。
from django.db.models import Count class EventAdmin(admin.ModelAdmin) list_display = (..., 'show_artist_count') def queryset(self, request): # def get_queryset(self, request): for Django 1.6+ qs = super(EventAdmin, self).queryset(request) return qs.annotate(artist_count=Count('artists')) def show_artist_count(self, inst): return inst.artist_count show_artist_count.admin_order_field = 'artist_count'