0

我有 3 个表ContinentCountryStory

CountryForeignKey(Continent)StoryManyToManyField(Country, blank=True)领域。

我需要的是获得至少有一个故事属于它的国家列表,我需要这些国家按大洲分组。

我怎样才能做到这一点?

4

1 回答 1

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)

这将完成工作。

再见

于 2013-05-09T22:49:30.313 回答