物品从Django处获得

时间:2018-05-19 22:22:53

标签: python django python-2.7

我正在使用django 1.9和python 2.7连接postgres作为后端。当我对存储在postgres中的行执行操作时,当发生异常时,正在操作的行将从后端删除。我也尝试过使用sqlite3作为后端并遇到同样的问题。

关于为什么会发生这种情况的任何想法?

1 个答案:

答案 0 :(得分:2)

您几乎肯定将ATOMIC_REQUESTS设置为True,并且当引发异常时,事务将被回滚。

来自文档的Database Transactions section

  

处理Web上的事务的常用方法是将每个请求包装在事务中。在要为其启用此行为的每个数据库的配置中将ATOMIC_REQUESTS设置为True

     

它的工作原理如下。在调用视图函数之前,Django启动一个事务。如果生成的响应没有问题,Django会提交事务。 如果视图产生异常,Django将回滚该事务。

大胆强调我的。

如果您不希望这种情况发生,请将ATOMIC_REQUESTS选项设置为False