回答:
使用:ドキュメントのobject.m2mfield.add(*items)
説明に従って:
add()
それらのリストではなく、任意の数の引数を受け入れます。
add(obj1, obj2, obj3, ...)
そのリストを引数に展開するには、次を使用します *
add(*[obj1, obj2, obj3])
Djangoはobj.save()
各アイテムを呼び出さずbulk_create()
、代わりにを使用します。
追加するには、クエリセットから追加する場合
例
# Returns a queryset
permissions = Permission.objects.all()
# Add the results to the many to many field (notice the *)
group = MyGroup.objects.get(name='test')
group.permissions.add(*permissions)
Django 1.9では、多対多の関係を追加する方法が追加されています。
ドキュメント:https : //docs.djangoproject.com/en/dev/ref/models/relations/#django.db.models.fields.related.RelatedManager.set
set
新しい便利さです:
>>> new_list = [obj1, obj2, obj3]
>>> e.related_set.set(new_list)
set
いつもそこにいたと思います。e.related_set = new_list
古いDjangosで割り当てを処理するために使用されていたのは、と同等e.related_set.set(new_list)
です。彼らは、「明示的なものは暗黙的なものよりも優れている」ことに気づきました。