django的bulk_create是原子的吗?

问题描述

在Django中使用bulk_create()批量创建对象时,如果出现任何故障,Django是否会回滚更改?还是应该明确使用transaction.atomic()

我的模型中有Foreignkey引用,数据库中可能不存在。

我正在使用Django 1.11

解决方法

bulk_create()如果未设置batch_size(除批号为999的SQLite除外),将产生单个查询

仅当您设置batch_size并且希望还原所有以前的批次时,才应该执行transaction.atomic()块