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

Eri*_*ric 4 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()
Run Code Online (Sandbox Code Playgroud)

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

  • 计算“可用”套房
  • '可用'套房'面积'字段的总和

我很确定我可以对套房列表的面积进行求和,如下所示:

models.Suite.objects.filter(Q(available=True)).aggregate(Sum('area'))
Run Code Online (Sandbox Code Playgroud)

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

Jah*_*nov 5

我认为你可以做到这些:

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

Suite.objects.filter(floor__building=building, available=True).count()
Run Code Online (Sandbox Code Playgroud)

可用套房面积总和:

Suite.objects.filter(floor__building=building, available=True).aggregate(Sum('area'))
Run Code Online (Sandbox Code Playgroud)

希望能帮助到你!