2012-05-10 145 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

無論如何,這些是在數據庫級別的兩個單獨的查詢,如果你想要查詢集合中所有內容的平均值。另外,既然你想要所有的結果,你可以計算平均值,一旦你得到結果,以避免第二個查詢。 –