大家好: 回头来分享,这个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