我有以下模型结构Country,City(fk = country)和School(fk = city)。现在我想获得有城市的国家列表,如果城市有学校。在我的模板中,我想做
for country in countrylist
for city in getcitieswithschool
我可以通过一个查询获得结果集吗?
答案 0 :(得分:2)
通过
获取城市City.objects.filter(school__isnull=False).distinct().select_related('country')
然后country
{{1}} {{1}}它们将是干净而有效的。
答案 1 :(得分: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)