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

时间:2012-04-03 18:58:10

标签: django django-models many-to-many

我必须建模:

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

class B(Model):
    # fields

在关系中添加大量现有B实例的最有效方法是什么?

1 个答案:

答案 0 :(得分:3)

从django 1.4开始,您可以make use of a bulk_create方法一次创建大量B对象,然后将它们添加到A.b ManyToMany

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

l = [
    B(...),
    B(...),
    B(...),
    ...
]
B.objects.bulk_create(l)
a.b.add(*o)