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.Bmanytomy
因此,创建一个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)