在Django中,我如何返回与另一个模型相关的项目总数(计数),例如stackoverflow执行问题列表的方式,然后它会显示与该问题相关的答案的计数。< / p>
如果我得到问题,这很容易,我可以返回与该问题相关的所有答案,但是当显示整个问题列表时,在显示总计数的计数侧显示有点棘手。
我不知道是否清楚但只是想想stackoverflow如何用答案显示其问题,每个问题旁边的视图计数!
答案 0 :(得分:5)
另请参阅example如何构建相关模型的QuerySet。
答案 1 :(得分:1)
如果你愿意使用trunk,你可以利用一周前左右添加的全新annotate()QuerySet方法,这解决了这个问题:
http://docs.djangoproject.com/en/dev/topics/db/aggregation/
如果你想坚持使用Django 1.0,你可以使用extra()QuerySet方法的select参数以稍微不那么优雅的方式实现这一点。这里有一个关于你正在谈论使用extra()的例子:
最后,如果你需要这个真正的高性能,你可以将计数归一化到一个单独的列。我在演示文稿的单元测试部分有一些如何做到这一点的例子: