我閱讀了關於交易管理的Django文檔中的章節。據我所知,只要調用TransactionMiddleware
就開始交易。然後通過使用@commit_on_success
,@commit_manually
有可能控制交易結束。在Django開始的交易
我的問題:是否有可能控制交易開始,以及完全擺脫TransactionMiddleware。我擔心Django框架的許多部分實際上取決於TransactionMiddleware的存在,所以我不想打破它。我希望它可以用於除了那些屬於我明確指定的應用程序的所有視圖。最重要的是,我希望能夠完全控制某些視圖的交易行爲 - 從開始到結束。我應該採取什麼方法?有沒有外部應用程序,庫來幫助我?第一次數據庫命中發生時,是急於還是懶惰地創建事務?
我必須這樣做,因爲我想與明確設置的隔離級別開始交易。如果出現特定的異常,則沿着'IsolationLevelRequired'行,我希望能夠以更高的隔離級別重新啓動事務,比如說'SERIALIZABLE'。雖然這看起來比我預期的要好,但今天會看看。謝謝。 – julkiewicz 2011-04-16 15:53:22
此外 - django/db/transaction.py有一個非常好的代碼文檔。這似乎與你所說的一致。 – julkiewicz 2011-04-16 22:30:25