Django:没有直通模型的最有效的多对多关系添加?

Django:没有直通模型的最有效的多对多关系添加?,django,django-models,many-to-many,Django,Django Models,Many To Many,我必须: class A(Model): b = models.ManyToManyField(B) class B(Model): # fields 将大量现有的B实例添加到关系中最有效的方法是什么?从django 1.4开始,您可以一次创建多个B对象,然后将它们添加到a.Bmanytomy 因此,创建一个B对象列表,批量创建它们,然后将它们添加到a实例的ManyToMany关系中: 有没有办法让a.b.add(o)更有效?通过迭代列表中的条目,django将为每个实例发送

我必须:

class A(Model):
    b = models.ManyToManyField(B)

class B(Model):
    # fields
将大量现有的
B
实例添加到关系中最有效的方法是什么?

从django 1.4开始,您可以一次创建多个B对象,然后将它们添加到a.B
manytomy

因此,创建一个
B
对象列表,批量创建它们,然后将它们添加到
a
实例的
ManyToMany
关系中:


有没有办法让a.b.add(o)更有效?通过迭代列表中的条目,django将为每个实例发送一个insert。我已经更新了答案。您可以一次添加一个未打包的对象列表,但我认为它仍然会对每个对象进行DB调用“with transaction.atomic():”(来自django.DB import transaction)您需要/想要避免直通模型的具体原因是什么?我没有其他数据,所以我还不需要它。
l = [
    B(...),
    B(...),
    B(...),
    ...
]
B.objects.bulk_create(l)
a.b.add(*o)