大家好:
回头来分享,这个issue的解决办法。
在StackOverFlow,有找到一篇关于这个issue的解法以及说明:
只是这个问题的发生,还是个谜(太嫩了),根据同事转述,他也在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官方文章,给遇到相同问题的乡民参考