首页 > 解决方案 > 在直通表中批量创建的最佳方法是什么?

问题描述

这是我的直通表的样子:

class ThroughTable(models.Model):
    user = models.ForeignKey(User)
    society = models.ForeignKey(Society)

我得到 2 个列表,其中包含 2 个模型对象的 id,它们必须添加到我的直通表中。

user_list = [1,2,5,6,9]
society_list = [1,2,3,4]

在这里,我想为这 2 个列表中的每个可能对在通过表中创建条目。

我正在考虑使用嵌套循环来迭代和创建 Through 表中的对象,但它看起来非常幼稚,并且具有 n*n 的复杂性。

有没有更好的方法来解决这个问题?

标签: pythondjangodjango-modelsdjango-rest-framework

解决方案


Django 提供了一个 bulk_create() 方法来在数据库中创建条目。它具有可选参数batch_size,因为如果您有数百万条记录,则无法一次性输入所有记录,因此要分批打破记录并进入数据库。

ThroughTable.objects.bulk_create(item, batch_size)


推荐阅读