0

その単純化されたモデルを持つ:

subproducts = models.ManyToManyField("self", blank=True, symmetrical=False)
active = models.BooleanField(default=False, db_index=True)

そして次のようなデータ:

  • 製品 1
    • サブP 1
    • サブP2
  • 製品 2
    • サブP 3
    • サブP4
  • 製品 3
    • サブP5
    • SubP 6

製品 1 ~ 3 がメイン製品で、SubP* がサブ製品であるとします。Product 1 と Product 3 の ID を持つタプルを持つ: (1, 3)

すべてのサブプロダクトを取得したいので、クエリは (SubP 1、SubP 2、SubP 5、SubP 6) を返す必要があります。

そのクエリをどのように書くのですか?リストをループして製品ごとに 1 つのクエリを作成することはできますが、1000 個のオブジェクトを含むリストでは DB が停止してしまいます。もっと良い方法はありますか?

4

1 に答える 1