2013-05-09 83 views
0

我有3個表格:ContinentCountryStory從相關表中提取數據

CountryForeignKey(Continent)StoryManyToManyField(Country, blank=True)字段。

我需要的是獲得至少有一個故事屬於它的國家列表,我需要這些國家按大洲分組。

我該如何做到這一點?

回答

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) 

,將做的工作。

再見

+0

謝謝你的工作,但它創造了太多的查詢(271查詢)! – 2013-05-10 22:12:07