Django过滤AVG - 评级

pkd*_*dkk 0 django django-models

我怎样才能获得平均评分?

模型:

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)
Run Code Online (Sandbox Code Playgroud)

我试试..

rating = Review.objects.filter(vendor = vendor).annotate(Avg('rating'))

模板:

{{rating.rating__avg}}

Dan*_*man 5

要获得查询集的单个平均值,您需要使用aggregate而不是annotate.

rating = Review.objects.filter(vendor=my_vendor).aggregate(Avg('rating'))
Run Code Online (Sandbox Code Playgroud)