0
模型站有一個FK到系統。我想在系統 admin更改列表中顯示工作站列爲列。我已經用下面的代碼實現了這一點,但是我很難將'num_stations'列排序。Django管理員:SORTING list_display字段反向FK聚合
model.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工作,即使其他堆溢出問題一般顯示正向移動關係支持 例如
- Django admin: how to sort by one of the custom list_display fields that has no database field
- Can 「list_display」 in a Django ModelAdmin display attributes of ForeignKey fields?。
的[問題](https://stackoverflow.com/questions/2168475/django-admin-how-to-sort-by-one-of-the- custom-list-display-fields-that-has-no-d)你鏈接到的包含答案。您需要重寫查詢集並註釋計數。使用'admin_order_field'來引用'station_set.count()'是不可能的,即使這樣做,對queryset中的每個項目進行計數的效率也會低於註釋。 – Alasdair