2012-02-08 35 views
0

我如何获得平均评分?Django过滤器AVG - 评分

型号:

class Review(models.Model): 
    vendor = models.ForeignKey(Vendor) 
    product = models.ForeignKey(Product ,blank=True, null=True) 
    headline = models.CharField(max_length=100) 
    review = models.TextField(blank=True, null=True) 
    rating = models.IntegerField() 
    active = models.BooleanField(default=1) 
    created = models.DateTimeField(auto_now_add=True) 
    changed = models.DateTimeField(auto_now=True) 

我尝试..

等级= Review.objects.filter(供应商=供应商).annotate(AVG( '评级'))

模板:

{{rating.rating__avg}}

回答

5

要得到一个QuerySet一个平均值,则需要使用aggregate而不是annotate

rating = Review.objects.filter(vendor=my_vendor).aggregate(Avg('rating'))