我正在创建一个使用星星的评级系统。
这是我的Place模型:
class Place(models.Model):
name = models.CharField(max_length=80)
floor = models.IntegerField(null=True)
unit = models.CharField(null=True, blank=True, max_length=5)
address = models.CharField(null=True, blank=True, max_length=120)
desc = models.TextField(null=True, blank=True)
这是我的评分模型:
class Rating(models.Model):
user = models.ForeignKey(User)
place = models.ForeignKey(Place)
STAR_CONVERSION = (
(1, 'One'),
(2, 'Two'),
(3, 'Three'),
(4, 'Four'),
(5, 'Five'),
)
air_flow = models.PositiveSmallIntegerField(choices=STAR_CONVERSION)``
我想获得每个地方每个评级字段的平均评分。
例如,地点X的平均气流。
在我的views.py中,我试图汇总一个独特地方的air_flow的平均值:
class PlaceViewSet(viewsets.ModelViewSet):
queryset = Place.objects.all()
serializer_class = PlaceSerializer
air_flow_average = Rating.objects.filter(Place='id').aggregate(Avg('air_flow'))