2017-08-17 32 views
2

我有以下型号:嵌套外键关系中的和和计数?

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')) 

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

+0

你是什么意思:“嵌套这个,以便你可以查询整个建筑物的数据”,你想嵌套'''区域集合'结果在BuildingSeriaizer? – gushitong

+0

我可以做一个单一楼层的示例查询,但我无法弄清楚如何做建筑物中的每个套房。 – Eric

+0

你的意思是:'''汇总每个建筑物的所有可用套件区域',对吧? – gushitong

回答

1

我觉得你可以做这些:

要计算在提供套房建筑:

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

综上所述提供套房的领域:

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

希望它有帮助!