Django:按注释计数设置的订单查询

时间:2013-03-11 01:21:44

标签: django comments django-queryset django-aggregation

非常简单......我正在使用Django 1.4.1,并且需要通过与其相关的注释数量的倒序来命令查询集。我正在使用Django评论框架,并尝试使用.annotate(在其他答案中推荐的comment_count = Count('comment')结构...我得到'评论'并不解决字段错误。

我也尝试过django-generic-aggregate的0.3.1版本,它会抛出数据库错误,所以就这样了。

Photo.objects.filter(galleries=gallery).annotate(comment_count=Count('comments')).order_by('-comment_count')[(page-1)*RESULTS_PER_PAGE:page*RESULTS_PER_PAGE]

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

将功能放在照片模型

class Photo(models.Model):
    .........

    def orders(self):
        //filter first the highest count of comments
        aggregate = Photo.objects.aggregate(comment_count=Count('comments'))
        return aggregate['comment_count'] + 1

然后你可以在视图中这样调用它:

comments = Photo.objects.filter(galleries=gallery).orders()