Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么Django bulk_在没有pk的情况下创建返回对象?_Django_Django Orm - Fatal编程技术网

为什么Django bulk_在没有pk的情况下创建返回对象?

为什么Django bulk_在没有pk的情况下创建返回对象?,django,django-orm,Django,Django Orm,为什么Djangobulk\u创建返回没有pk的对象 In [1]: item_list = [Model(title=str(i)) for i in range(10)] In [2]: objs = Model.objects.bulk_create(item_list) In [3]: print(objs[0].pk) None 在结果objs==项目列表中 这有什么意义 我的意思是,此方法可以返回操作的结果(即True,或False,或其他),而不是我已经拥有的无用对象集合。引用d

为什么Django
bulk\u创建
返回没有
pk
的对象

In [1]: item_list = [Model(title=str(i)) for i in range(10)]
In [2]: objs = Model.objects.bulk_create(item_list)
In [3]: print(objs[0].pk)
None
在结果
objs==项目列表中

这有什么意义

我的意思是,此方法可以返回操作的结果(即
True
,或
False
,或其他),而不是我已经拥有的无用对象集合。

引用django:

如果模型的主键是自动字段,则不会检索和 像save()那样设置主键属性

根据django的说法,它一次创建一个数据库记录列表,但不会检索对象的ID。我认为这对于在不进一步处理数据的情况下进行大量插入的情况是有益的。

从Django 1.10开始:

如果模型的主键是一个
自动字段
,它不会像
save()
那样检索和设置主键属性,除非数据库后端支持它(当前为PostgreSQL)


因此,如果您使用的是Django 1.10+,并且没有返回主键,这是因为只有PostgreSQL支持它。

运行Django 2.2,而这个问题仍然存在,Django 3.2。。。