2012-03-23 6 views
1

したがって、Countryという外部キーを持つモデルCityがあるとします。データベースでは、1つ以上の都市でいくつかの国が選択され、一部では選択されなかった国もあります。外部キーとして選択されている項目を取得するためのDjangoクエリ?

選択されていない都市を除いて、1つ以上の都市で選択された国のみをどのように見つけることができますか?

+0

私は答えとしてこれを持っていたが、私はそれが動作する100%ではないと私は、現時点ではそれをテストすることはできません。試してみてください: 'Country.objects.exclude(city__isnull = True)'。 [あなたは照会時に逆の関係にアクセスできます](https://docs.djangoproject.com/ja/dev/topics/db/queries/#lookups-that-span-relationships)ので、それらを除外することができます都市と後方関係はありません。それがうまくいけば、私は答えとして投稿します –

+0

残念ながら '国家'はフィールド '都市'を持っていません、それは逆です。 'Country'には' city_set'プロパティがありますが、このセットが空でない国だけが必要です。 –

+0

クエリ内で関係を後方に追うことができるはずです。 +1都市を持つ国は '(city__isnull = False)'にする必要があります。 –

答えて

1
# Get all countries that have at least one city 
Country.objects.exclude(city__isnull=False) 
関連する問題