问题描述
实际上,我坚持一件事。我学到很多东西,但是我需要你的帮助...
Django模型
from django.db import models
# Create your models here.
class Car(models.Model):
mark = models.CharField(max_length=180)
model = models.CharField(max_length=180,unique=True)
def __str__(self):
return "Car mark : {} Car model {}".format(self.id,self.model)
class Rate(models.Model):
class ratings(models.IntegerChoices):
One = 1
Two = 2
Three = 3
Four = 4
Five = 5
grade = models.IntegerField(choices=ratings.choices)
car = models.ForeignKey(Car,on_delete=models.CASCADE,blank=True,null=True,related_name='rates')
首先-我想获取分配给一个对象的比率的平均值。 其次,我想计算每个对象的汇率。
解决方法
简单,尝试这样:
from django.db.models import Avg,Count
Car.objects.annotate(rate_count=Count('rates'),avg_rate=Avg('rates__grade')).values()
更多信息,请访问documentation
,我不是Django方面的专家,但是查看了模型后,我希望像下面这样的东西可以工作
number_of_rates = len(car.rates)
average = sum([rate.grade for rate in car.rates]) / len(car.rates)