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

发布于 2024-08-30 19:34:06 字数 245 浏览 3 评论 0原文

当为 django.contrib.comments 创建自己的管理类时,我希望允许对标记的评论进行排序。我可以为管理类提供一个返回 comment.flags.count() 的自定义方法,但不确定我是否能让管理员按此排序。

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

有人知道无需更改 django.contrib.comments 的解决方案吗?

When Creating your own Admin Class for django.contrib.comments, I want to allow sorting of flagged comments. I can a custom method to the admin class that return comment.flags.count(), but not sure I get the admin to sort by this.

The problem I see is that its CommentFlag model that contains the foreign key to Comment model.

Anybody know a solution with out changing django.contrib.comments?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

ㄟ。诗瑗 2024-09-06 19:34:06
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 不是模型注释的访问器。

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'

Its a bit messy, but Django complains that flag_count is not an accessor for the Model Comment when you register the admin.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文