2012-01-11 86 views
1

我有以下模型結構國家,城市(fk =國家)和學校(fk =城市)。現在我想獲得有城市的國家名單,如果城市有學校的話。在我的模板中,我想要做Django查詢3表

for country in countrylist 
    for city in getcitieswithschool 

我可以通過一個查詢獲得結果集嗎?

回答

2

獲取城市

City.objects.filter(school__isnull=False).distinct().select_related('country') 

然後{% regroup %}他們通過country這將是清潔和高效。

+0

非常感謝!太棒了!從來不知道重組 – John 2012-01-11 10:26:22

1

你可以讓他們使用該查詢

from django.db.models import Count 

countrylist = Country.objects.all()\ 
    .annotate(cities_cnt=Count('city'), schools_cnt=Count('city__school'))\ 
    .filter(cities_cnt__gt=0, schools_cnt__gt=0) 
+0

謝謝,但@DrTyrsa答案爲我工作 – John 2012-01-11 10:27:35