gpt4 book ai didi

django - 如何将可排序的计数列添加到具有多对一关系的模型的 Django 管理中?

转载 作者:行者123 更新时间:2023-11-28 19:34:19 24 4
gpt4 key购买 nike

假设我有一个包含 Publisher 模型外键的 Book 模型。

如何在 Django 管理中显示一个包含每个出版商出版的书籍数量的列,以一种我可以使用内置排序的方式?

最佳答案

我遇到了同样的问题(我无法更改模型的管理器来添加慢速注释或连接)。这里两个答案的组合有效。 @Andre 非常接近,Django 管理员支持仅为管理员修改查询集,因此在此处应用相同的逻辑,然后使用 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'

关于django - 如何将可排序的计数列添加到具有多对一关系的模型的 Django 管理中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3491766/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com