【发布时间】:2018-10-10 08:58:52
【问题描述】:
我的 django 管理面板似乎没有正确排序,我有一个自定义方法可以计算每个帖子的 cmets。
class PostAdmin(admin.ModelAdmin):
list_display = ('title', 'author', 'comments', 'created')
def get_queryset(self, request):
qs = super(PostAdmin, self).get_queryset(request)
qs = qs.annotate(com=models.Count('comment'))
return qs
def comments(self, obj):
return obj.comment_set.count()
comments.admin_order_field = 'com'
但可悲的是,每当我单击表格的标题以按 cmets 排序时,我都会得到如下信息:
85
100
132
128
36
是的,我已确保按降序对列进行排序。
我做错了什么?
【问题讨论】:
-
您是否添加了额外的过滤器?
def comments(self, obj),应该返回obj.com,而不是obj.comment_set.count(),因为那时你“撤消”了相关字段的过滤。
标签: django django-admin