使用外键的模型字段的聚合平均值 - Django REST

时间:2015-03-05 21:47:43

标签: python-2.7 django-rest-framework

我正在创建一个使用星星的评级系统。

这是我的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'))

0 个答案:

没有答案