django数量明显最大

时间:2015-08-03 09:11:16

标签: python django postgresql psql

很抱歉,我无法提供我的整个代码作为我的工作,我目前正在使用我的个人笔记本电脑。

我是django的新手,需要帮助解决这个问题

我需要获得非常计数的结果

所以, 我有内容和评论表 内容包含content_id和title 评论有comment_id,comment,content_id(FK)

每次用户评论内容评论表时都会记录这些内容。 例如。 评论

comment_id    comment    content_id
1             blah blah  1
2             blah blah  1
3             blah blah  2
4             blah blah  3

我需要获取评论数量最多的内容标题。 所以对于上面的例子, content_id 1评论最多,因为它有2条评论。 我需要从表格内容中获取content_id 1的标题。

在SQL中我可以使用类似的东西(不完全是,但只是为了让你知道我想要的东西)

SELECT DISTINCT(content.content_id) AS no_of_comments,
       title
FROM content INNER JOIN comment
ON content.content_id = comment.content_id
GROUP BY content.content_id
ORDER BY no_of_comments DESC

然后我可以

no_of_comments    title
2                 Title Of Content One
1                 Title Of Content Two
1                 Title Of Content Three

然后我只需要返回“内容标题一”。由于我的代码

我知道如何从SQL中获取这些内容,从上面的代码开始,但不知道如何使用django

我想我可能需要在django中使用游标内容,如果有的话, 但是当我从加入这两张桌子开始时,我不知道该怎么做。 我正在使用django 1.6

请帮帮我。

1 个答案:

答案 0 :(得分:0)

我认为您可以通过此查询实现您想要的目标:

Content.objects.annotate(count=Count('comment__id')).order_by('-count')

不需要GROUP BY