【问题标题】:Django admin order field doesn't look rightDjango 管理订单字段看起来不正确
【发布时间】: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


【解决方案1】:

comments 方法更改为: def comments(self, obj): return obj.com

【讨论】:

    猜你喜欢
    • 2023-03-18
    • 2012-01-30
    • 2021-06-10
    • 2017-05-08
    • 2013-10-13
    • 2019-11-05
    • 1970-01-01
    • 1970-01-01
    • 2016-10-03
    相关资源
    最近更新 更多