0
我有3個表格:Continent
,Country
和Story
。從相關表中提取數據
Country
有ForeignKey(Continent)
和Story
有ManyToManyField(Country, blank=True)
字段。
我需要的是獲得至少有一個故事屬於它的國家列表,我需要這些國家按大洲分組。
我該如何做到這一點?
我有3個表格:Continent
,Country
和Story
。從相關表中提取數據
Country
有ForeignKey(Continent)
和Story
有ManyToManyField(Country, blank=True)
字段。
我需要的是獲得至少有一個故事屬於它的國家列表,我需要這些國家按大洲分組。
我該如何做到這一點?
一種方式來做到這一點是:
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)
,將做的工作。
再見
謝謝你的工作,但它創造了太多的查詢(271查詢)! – 2013-05-10 22:12:07