从django中的对象集获得平均值

时间:2010-04-22 09:38:07

标签: python django average

Hay,我有一个简单的房产评级系统。你给它一个标记5(星)。模型定义如下

def Property(models.Model)
    # stuff here

def Rating(models.Model)
    property = models.ForeignKey(Property)
    stars = models.IntegerField()

我想要做的是获取一个属性,找到所有评级对象,收集它们,然后从它们获得平均“星星”。

任何想法如何做到这一点?

1 个答案:

答案 0 :(得分:30)

您应该使用Aggregation(doc)

from django.db.models import Avg

p = Property.objects.get(...)
stars_average = p.rating_set.aggregate(Avg('stars')).values()[0]

虽然对我的例子有点不确定。