だが、私はこのような1対多の関係に束縛三つのモデルを持っているとしましょう:第2レベルの1対多リレーションシップ階層ですべての関連オブジェクトを取得する方法は?
class Highest(Model):
pass
class Medium(Model):
higher = ForeignKey(Highest, on_delete=CASCADE)
class Lowest(Model):
higher = ForeignKey(Medium, on_delete_CASCADE)
私はhighest
と呼ばれるHighest
のインスタンスを持っている場合今、私は簡単にこのようすべての関連Medium
オブジェクトを取得することができます。highest.medium_set.all()
そして、私はmedium
と呼ばれるMedium
のインスタンスを持っている場合、私は簡単にこの方法ですべての関連Lowest
オブジェクトを取得することができます。medium.lowest_set.all()
しかし、どのように、私はobtaかを特定のHighest
オブジェクトに関連するMedium
オブジェクトに関連するすべてのLowest
オブジェクトでは、
これは動作しません:highest.medium_set.lowest_set.all()
私はいつもこれを行うことができます:Lowest.objects.filter(higher__higher=highest).distinct().all()
をしかし、これが唯一の方法ですか?それとももっと簡単にすることができますか?つまり、すべてのLowest
オブジェクトをフィルタリングするのではなく、Highest
オブジェクトからすべての関連するLowest
オブジェクトを取得することによって、
。簡単に言えば、取得したいモデル、つまり最低から始めましょう。 –