Hay,我有一个简单的房产评级系统。你给它一个标记5(星)。模型定义如下
def Property(models.Model)
# stuff here
def Rating(models.Model)
property = models.ForeignKey(Property)
stars = models.IntegerField()
我想要做的是获取一个属性,找到所有评级对象,收集它们,然后从它们获得平均“星星”。
任何想法如何做到这一点?
答案 0 :(得分:30)
您应该使用Aggregation(doc):
from django.db.models import Avg
p = Property.objects.get(...)
stars_average = p.rating_set.aggregate(Avg('stars')).values()[0]
虽然对我的例子有点不确定。