我有3个表:Continent
,Country
和Story
。
Country
有ForeignKey(Continent)
,Story
有ManyToManyField(Country, blank=True)
字段。
我需要的是获得一个至少有一个属于它的故事的国家列表,我需要这些国家按大洲分组。
我怎样才能做到这一点?
答案 0 :(得分:1)
一种方法是:
countries = {}
country_list = Country.objects.all()
for c in country_list:
# check the stories that has the country
stories = Story.objects.filter(country_set__name__exact=c.name)
# only if the country have stories
if stories.count() > 0:
## check for initialize list
if not countries.has_key(c.continent.name):
countries[c.continent.name] = []
## finally we add the country
countries[c.continent.name].append(c)
那将完成工作。
再见