相关疑难解决方法(0)

Django Model()vs Model.objects.create()

运行两个命令之间的区别是什么:

foo = FooModel()
Run Code Online (Sandbox Code Playgroud)

bar = BarModel.objects.create()
Run Code Online (Sandbox Code Playgroud)

第二个是否立即BarModel在数据库中创建一个,而for FooModel,save()必须显式调用该方法以将其添加到数据库中?

python database django django-models

231
推荐指数
5
解决办法
17万
查看次数

Django:从事务角度看save()和create()之间的区别

Django中的create()方法创建一个模型实例,然后调用save(),据说触发提交.因此触发事务的提交应该没有任何区别.

但实际上,在Postgresql上使用create()创建一组模型实例的方法我得到了transaction aborted, commands ignored until end of transaction异常.该方法适用于非事务性数据库后端.另外,当我用以下内容替换create()时:

m = Model(attr1=..., attr2=...)
m.save()
Run Code Online (Sandbox Code Playgroud)

它也可以在Postgresql上运行.

使用save()create()交易意义上有区别吗?

edit: create()也在self._for_write = True调用save()之前设置,但我无法跟踪它以查看它是否对事务行为有任何影响.

编辑:示例代码可以在这里找到.

django transactions commit

13
推荐指数
1
解决办法
9767
查看次数

7
推荐指数
2
解决办法
1万
查看次数