【发布时间】:2017-09-02 20:41:51
【问题描述】:
模型 Station 具有到 System 的 FK。我想将 Station 计数显示为 System 管理员更改列表中的一列。我已经使用下面的代码实现了这一点,但我很难使“num_stations”列可排序。
模型.py:
class System(models.Model):
pass
class Station(models.Model):
system_info = models.ForeignKey(System)
admin.py:
class SystemAdmin(admin.ModelAdmin):
def num_stations(self, obj):
return obj.station_set.count()
# num_stations.admin_order_field = ????
num_stations.short_description = 'stations'
list_display = (num_stations',)
反向关系的普通“station_set”语法似乎在 admin_order_field 中不起作用,尽管其他堆栈溢出问题通常显示支持正向遍历关系 例如
【问题讨论】:
-
您链接到的question 包含答案。您需要覆盖查询集并注释计数。不可能使用
admin_order_field来引用station_set.count(),即使是这样,对查询集中的每个项目进行计数而不是注释的效率也会降低。