我可以相信 Django 的bulk_create 可以保持顺序吗?

Lea*_*ima 6 django

当我做这样的事情时:

model_list = [Model(name = 'First'), Model(name = 'Second'), Model(name = 'Third')]
Model.objects.bulk_create(model_list)
Run Code Online (Sandbox Code Playgroud)

我可以相信它们会按照相同的顺序创建吗?

那是:

pk1 = Model.objects.get(name = 'First').pk
pk2 = Model.objects.get(name = 'Second').pk
pk3 = Model.objects.get(name = 'Third').pk

(pk3 > pk2) and (pk2 > pk1)
Run Code Online (Sandbox Code Playgroud)

小智 1

是的,您可以根据此处的 Django 4.2 文档进行信任https://docs.djangoproject.com/en/4.2/ref/models/querysets/#bulk-create

此方法以高效的方式将提供的对象列表插入数据库(通常只有 1 个查询,无论有多少个对象),并以列表形式返回创建的对象,顺序与提供的顺序相同...