10
我想我的Django视图是原子的。我的意思是,如果在视图中有2个DB写入,我想要写入0或2个写入。Django原子请求如何工作?
例如:
def test_view(request):
''' A test view from views.py '''
MyClass.objects.create()
raise Exception("whatever")
MyClass.objects.create()
我的文档中发现了似乎有希望:
办理网上交易的一种常用方法是包装在一个事务中的每个请求 。在要为其启用此行为的每个数据库的配置中,将ATOMIC_REQUESTS设置为True。
它的工作原理是这样的。在调用视图函数之前,Django启动一个 事务。如果响应没有问题产生,Django 提交事务。如果视图产生异常,Django 回滚事务。
然而,即使我设置ATOMIC_REQUESTS = True
,呼吁test_view()
时,创建第一个MyClass的对象!我错过了什么?
注:我使用Django 1.7
您在哪里设置了“ATOMIC_REQUESTS”值?什么是AUTOCOMMIT值? – koxt 2014-12-07 18:31:48