Hay, i have a simple rating system for a property. You give it a mark out of 5 (stars). The models are defined like this
def Property(models.Model)
# stuff here
def Rating(models.Model)
property = models.ForeignKey(Property)
stars = models.IntegerField()
What i want to do is get a property, find all the Rating objects,开发者_如何学Python collect them, then get the average 'stars' from them.
any ideas how to do this?
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.
精彩评论