Continent
、Country
およびの3 つのテーブルがありStory
ます。
Country
hasForeignKey(Continent)
およびStory
hasManyToManyField(Country, blank=True)
フィールド。
私が必要としているのは、少なくとも 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)
それは仕事をするでしょう。
さよなら