17

ヘイ、私は物件の簡単な評価システムを持っています。あなたはそれに5(星)のマークを付けます。モデルは次のように定義されます

def Property(models.Model)
    # stuff here

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

私がやりたいのは、プロパティを取得し、すべてのRatingオブジェクトを見つけて収集し、それらから平均的な「星」を取得することです。

これを行う方法はありますか?

4

1 に答える 1

40

Aggregation(doc)を使用する必要があります:

from django.db.models import Avg

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

しかし、私の例については少しわかりません。

于 2010-04-22T09:50:54.933 に答える