在Django中,我如何返回与模型相关的项目总数?

时间:2009-01-22 13:26:22

标签: python django

在Django中,我如何返回与另一个模型相关的项目总数(计数),例如stackoverflow执行问题列表的方式,然后它会显示与该问题相关的答案的计数。< / p>

如果我得到问题,这很容易,我可以返回与该问题相关的所有答案,但是当显示整个问题列表时,在显示总计数的计数侧显示有点棘手。

我不知道是否清楚但只是想想stackoverflow如何用答案显示其问题,每个问题旁边的视图计数!

2 个答案:

答案 0 :(得分:5)

QuerySet.count()

另请参阅example如何构建相关模型的QuerySet。

答案 1 :(得分:1)

如果你愿意使用trunk,你可以利用一周前左右添加的全新annotate()QuerySet方法,这解决了这个问题:

http://docs.djangoproject.com/en/dev/topics/db/aggregation/

如果你想坚持使用Django 1.0,你可以使用extra()QuerySet方法的select参数以稍微不那么优雅的方式实现这一点。这里有一个关于你正在谈论使用extra()的例子:

http://docs.djangoproject.com/en/dev/ref/models/querysets/#extra-select-none-where-none-params-none-tables-none-order-by-none-select-params-none

最后,如果你需要这个真正的高性能,你可以将计数归一化到一个单独的列。我在演示文稿的单元测试部分有一些如何做到这一点的例子:

http://www.slideshare.net/simon/advanced-django