1

関連する (外部キー) フィールドを含むモデルがあるとします。同様に、これらの外部キー フィールドは、関連するフィールドを含む場合と含まない場合があるモデルを参照する場合があります。Django のリレーショナル フィールドは、1 対 1、多対 1、または多対多の場合があることに注意してください。

ここで、モデルのインスタンスが与えられたので、それに関連するモデルのすべてのインスタンスを再帰的かつ動的に、直接的または間接的に取得したいと考えています。概念的には、関連するオブジェクトのトラバーサルを実行してそれらを返したいと考えています。

例:

class Model1{
   rfield1 = models.ForeignKey("Model2")
   rfield2 = models.ManyToManyField("Model3")
   normalfield1 = models.Charfield(max_length=50)
}
class Model2{
   sfield = models.ForeignKey("Model3")
   normalfield = models.CharField(max_length=50)
}
class Model3{
   normalfield = models.CharField(max_length=50)
}

たとえば、 model のインスタンスがありModel1 model1、それに直接関連するオブジェクト、つまりすべての Model2 および Model3 オブジェクトと、間接的に関連するオブジェクト、つまり以前に取得した Model2 オブジェクトに関連するすべての Model3 オブジェクトを取得したいとします。また、関連するフィールドがOTHER MODELで定義されている One-to-One フィールドの場合も検討したいと思います。

また、現在取り組んでいるインスタンスのモデルを知っているとは限らないことに注意してください。前の例で言えば、それがモデルmodel1のインスタンスではないかもしれません。Model1したがって、これらすべてを動的に実行したいと考えています。

これを行うには、オブジェクトのすべての関連フィールドを取得する方法が必要だと思います。

  1. オブジェクトのすべての関連フィールドを取得する方法は?
  2. 実際の関連オブジェクトを取得するには、それらをどのように使用すればよいですか?

または、これを行うためのより良い方法はありますか? どうもありがとうございました!

アップデート:

私はすでに1を実行する方法を知っており、2は基本的に1から直接続きます.:)後で更新します。

4

1 に答える 1