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