嵌套外键关系中的Sum和Count?

时间:2017-08-17 18:13:41

标签: django django-models django-rest-framework

我有以下型号:

class Building():

class Floor():
    building = models.ForeignKey("Building")

class Suite():
    floor = models.ForeignKey("Floor")
    area = models.FloatField()
    available = models.BooleanField()

在建筑物的序列化器中,整个建筑物,我想

  • 数量'可用'套房
  • 总和'可用'套房'地区'字段

我非常确定我可以将这样的套件列表区域加起来:

models.Suite.objects.filter(Q(available=True)).aggregate(Sum('area'))

我不知道如何嵌套这个,以便我可以查询整个建筑的数据......

1 个答案:

答案 0 :(得分:2)

我认为你可以做到这些:

计算建筑物中的可用套房:

Suite.objects.filter(floor__building=building, available=True).count()

总结可用套房的区域:

Suite.objects.filter(floor__building=building, available=True).aggregate(Sum('area'))

希望它有所帮助!