我有很多对象要保存在数据库中,所以我想用它来创建Model实例。
使用django,我可以用MyModel(data)
创建所有的模型实例,然后我想保存它们。
目前,我有类似的东西:
for item in items:
object = MyModel(name=item.name)
object.save()
我想知道是否可以直接保存对象列表,例如:
objects = []
for item in items:
objects.append(MyModel(name=item.name))
objects.save_all()
如何在一个事务中保存所有对象?
发布于 2012-01-17 07:38:33
在django开发中,存在bulk_create
作为对象管理器方法,它接受使用类构造函数创建的对象数组作为输入。查看django文档
发布于 2012-11-08 21:39:50
我使用手动事务处理来处理循环(postgres 9.1):
from django.db import transaction
with transaction.atomic():
for item in items:
MyModel.objects.create(name=item.name)
事实上,它与‘原生’数据库大容量插入不同,但它允许您避免/减少传输/orms操作/sql查询分析成本
发布于 2013-04-29 19:03:28
下面是如何从以列分隔的文件批量创建实体,将所有未引用和未转义的例程放在一边:
SomeModel(Model):
@classmethod
def from_file(model, file_obj, headers, delimiter):
model.objects.bulk_create([
model(**dict(zip(headers, line.split(delimiter))))
for line in file_obj],
batch_size=None)
https://stackoverflow.com/questions/3608487
复制相似问题