【发布时间】:2019-05-01 05:34:34
【问题描述】:
我看到有人问过类似的问题,但提供的答案含糊不清,因此我将不胜感激。
我想对一些相关的 1:1 对象进行批量创建。
我希望我能做这样的事情:
class A(models.Model):
class B(models.Model):
A = models.ForeignKey(A)
all_a = []
all_b = []
for i in range(10000):
new_a = A()
new_b = B(A=new_a)
all_a.append(new_a)
all_b.append(new_b)
with transaction.atomic():
A.objects.bulk_create(all_a)
B.objects.bulk_create(all_b)
但我猜测 A 模型需要写入数据库,并返回实际 PK 并与 B 模型关联,然后才能写入它们。
有没有人对如何有效地做到这一点有好的建议? 提前致谢
【问题讨论】:
-
您使用的是什么数据库? PostgreSQL 有一个很好的解决方案。
-
使用 Postgres,但可能会在某个阶段转移到像 TimeScale 这样的 TS 数据库。
标签: django python-3.x django-orm