17

干草,我有一个简单的物业评级系统。您给它打分(满分 5 星)。模型是这样定义的

def Property(models.Model)
    # stuff here

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

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

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

4

1 回答 1

40

You should use Aggregation(doc):

from django.db.models import Avg

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

A little bit unsure about my example though.

于 2010-04-22T09:50:54.933 回答