2017-08-17 55 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')) 

希望它有幫助!