2012-10-19 166 views
3

我有一个大约15个对象的数据库Result.objects.all()。结果有一个称为分数的字段,范围从1到5。所以,如果我的瓶坯q = Result.objecets.get(id=1)q.score是2. 什么是找到所有15个对象的所有分数的平均值的方法?数据库平均分(Django)

回答

7

你可以使用django aggregation函数来做到这一点;

# Average price across all objects. 
>>> from django.db.models import Avg 
>>> Result.objects.all().aggregate(Avg('score')) 
{'score__avg': 34.35} 
+0

是的,这样做。 – ono

+0

+1。最好的部分是,这是在数据库中完成的,而不是在应用程序代码中完成的,因此它具有更大的可扩展性。 :-) –

+0

让我们来敲一下:有没有办法忽略所有2分,只有平均1,3,4和5的分数?我可能不得不发布一个新问题。 – ono