DjangoのManyToManyフィールド はmy_field.add(my_instance)
を使用して入力できますが、私が理解しているように、対応するSQLクエリを実行するには実際には_my_instance.id
_のみが必要です。
IDでオブジェクトを追加する場合は、my_field.add(MyModel.objects.get(id=id))
を使用できますが、これにより1つではなく2つのクエリが生成されます。この余分なクエリを回避するにはどうすればよいですか?
add
メソッドのドキュメント はそれについて言及していませんが、実際には次のようにIDを直接渡すことができます。
my_instance.add(id)
確かに、これは主キーがリレーションの識別子として使用されている場合にのみ機能します(デフォルトの動作)。