Django List Admin允许对反向外键进行排序

时间:2010-04-28 15:56:55

标签: django-admin

django.contrib.comments创建自己的管理类时,我想允许对标记的注释进行排序。我可以为admin类返回comment.flags.count()的自定义方法,但不确定我是否让管理员按此排序。

我看到的问题是它的CommentFlag模型包含Comment模型的外键。

任何人都知道一个不改变django.contrib.comments的解决方案吗?

1 个答案:

答案 0 :(得分:0)

def queryset(self, request):
        qs = super(CommentsAdmin, self).queryset(request)
        return qs.extra(select={
            'flag_count': 'SELECT COUNT(*) FROM django_comment_flags WHERE django_comment_flags.comment_id = django_comments.id'
            },)

def flags(self):
    return self.flags.count()
flags.admin_order_field = 'flag_count'

它有点乱,但Django抱怨说当注册管理员时,flag_count不是模型注释的访问者。