2012-05-10 146 views
0

希望很容易的问题。我有一组查询操作,每个操作都有一个time_estimate。我想要得到的平均time_estimate所有的查询集这样的行动,这将返回平均:添加聚合到Django查询集

{{ actions.avg_time_estimate }} 

我试图

actions.avg_time_estimate = actions.aggregate(Avg('time_estimate')) 

但这分配字典actions.avg_time_estimate,这意味着我得到我的平均是这样的:

{{ actions.avg_time_estimate.effort__avg }} 

什么是平均拉入查询集的正确方法是什么?我也想保留查询中的实际操作列表。

+0

难道这是通过在加总作为一个额外的查询集做了什么? (请参阅[Django文档](https://docs.djangoproject.com/en/dev/ref/models/querysets/#django.db.models.query.QuerySet.extra)) – jvc26

回答

0

尽量actions = actions.aggregate(avg_time_estimate=Avg('time_estimate'))

+0

这给了我平均,但然后我失去了查询结果(上面编辑的问题) –

+0

无论如何,这些是在数据库级别的两个单独的查询,如果你想要查询集合中所有内容的平均值。另外,既然你想要所有的结果,你可以计算平均值,一旦你得到结果,以避免第二个查询。 –