为django.contrib.comments
创建自己的管理类时,我想允许对标记的注释进行排序。我可以为admin类返回comment.flags.count()
的自定义方法,但不确定我是否让管理员按此排序。
我看到的问题是它的CommentFlag模型包含Comment模型的外键。
任何人都知道一个不改变django.contrib.comments
的解决方案吗?
答案 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不是模型注释的访问者。