31

クエリの数を減らす多対多の関係に対して「すべて追加」または「一括作成」に相当するものがあるかどうか疑問に思っていました(長いリストに対してこれを行います)?

この件に関するドキュメントは、これが不可能であることを示唆しているようです:

https://docs.djangoproject.com/en/dev/topics/db/examples/many_to_many/

**Associate the Article with a Publication:**
a1.publications.add(p1)

**Create another Article, and set it to appear in both Publications:**
a2 = Article(headline='NASA uses Python')
a2.save()
a2.publications.add(p1, p2)
a2.publications.add(p3)
4

4 に答える 4

9

もちろん可能です!明示的な中間テーブルを作成してから、このモデルのbulk_createメソッドを使用するだけです。

于 2012-06-01T11:39:54.480 に答える
0

これに使用できますRelatedManager.set

a2 = Article(headline='NASA uses Python')
a2.save()
a2.publications.set([p1, p2, p3])

ドキュメントには、最後に呼び出す必要がないことも記載さ.save()れています。

于 2020-06-09T10:25:07.533 に答える