大家好: 回頭來分享,這個issue的解決辦法。 在StackOverFlow,有找到一篇關於這個issue的解法以及說明: http://ppt.cc/sX6l 只是這個問題的發生,還是個謎(太嫩了),根據同事轉述,他也在Trasaction中除錯, 直接關閉程式,不下幾十次,也沒有弄出種錯誤。 為了找出錯誤怎麼發生,我把DB重開,執行後,錯誤一樣發生,cookie清掉,錯誤 一樣發生,那一段跑進去後,就是會發生錯誤(如同上篇所述),追進Traceback, 追到這段 def validate_no_atomic_block(self): """ Raise an error if an atomic block is active. """ if self.in_atomic_block: raise TransactionManagementError( "This is forbidden when an 'atomic' block is active.") 那目前還是照StackOverFlow這篇來解掉這個issue,寫法跟我上篇差不多, 但是把set_auotcommit相關的語法都拿掉,但拿掉後有個隱憂是目前Django預設 autocommit=true,在沒有下autocommit=false,情況下進行transactation, 不知道會不會因為autocommit的關係,造成transaction失效,今天稍微 測了一下是OK的,如果有意外在上來跟各位分享。 也謝謝uranusjr的指教~ 再貼一篇Transaction官方文章,給遇到相同問題的鄉民參考 http://ppt.cc/bW7Y