0

非常简单...我使用的是 Django 1.4.1,并且需要按评论数量的倒数来订购查询集。我正在使用 Django 评论框架,并尝试使用其他答案中推荐的 .annotate(comment_count = Count('comment') 结构......我得到 'comment' doesn't resolve to a field error。

我也试过 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]

有什么建议么?

4

1 回答 1

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()
于 2013-03-11T02:53:56.347 回答