Django 受控交易块以延迟固定结束/犯罪//回滚
我有一个由交易手动控制的演示文稿功能,但当我使用装饰器时
, django ALWAYS 调用以下异常。
正如您可以从代码中看到的那样 trace 下面,事务在从视图返回之前立即修复。
我用 sqlite, 如何 windows, 和 linux, 从 django 1.4.
以下是一个结论 django_trace, 应该在后面的例外。 明确:这发生了,无论我用我吗? django_trace 或者不是,当没有装饰者时,根本没有出现异常。 这不是由异常引起的 "swallowed".
请注意字符串 60 下面是在上下文处理器内,因此,犹豫不决
-wrapped.
要清楚,我检查了关于这个主题的其他问题,他们没有解决我的问题。
@transaction.commit_manually
, django ALWAYS 调用以下异常。
正如您可以从代码中看到的那样 trace 下面,事务在从视图返回之前立即修复。
我用 sqlite, 如何 windows, 和 linux, 从 django 1.4.
以下是一个结论 django_trace, 应该在后面的例外。 明确:这发生了,无论我用我吗? django_trace 或者不是,当没有装饰者时,根本没有出现异常。 这不是由异常引起的 "swallowed".
请注意字符串 60 下面是在上下文处理器内,因此,犹豫不决
commit_manually
-wrapped.
01->mainapp.views:1321: transaction.commit//
01->mainapp.views:1322: return render_to_response/'mainapp/templates/incorporate.html',
01->mainapp.views:1323: RequestContext/request, form_params//
02-->mainapp.views:60: transaction.rollback_unless_managed//
02-->mainapp.views:61: return {'home_login_form': AuthenticationForm/request/}
Traceback /most recent call last/:
File "C:\Users\Marcin\Documents\oneclickcos\lib\site-packages\django\contrib\staticfiles\handlers.py", line 67, in __call__
return self.application/environ, start_response/
File "C:\Users\Marcin\Documents\oneclickcos\lib\site-packages\django\contrib\staticfiles\handlers.py", line 67, in __call__
return self.application/environ, start_response/
File "C:\Users\Marcin\Documents\oneclickcos\lib\site-packages\django\core\handlers\wsgi.py", line 241, in __call__
response = self.get_response/request/
File "C:\Users\Marcin\Documents\oneclickcos\lib\site-packages\django\core\handlers\base.py", line 179, in get_response
response = self.handle_uncaught_exception/request, resolver, sys.exc_info///
File "C:\Users\Marcin\Documents\oneclickcos\lib\site-packages\django\core\handlers\base.py", line 221, in handle_uncaught_exception
return debug.technical_500_response/request, *exc_info/
File "C:\Users\Marcin\Documents\oneclickcos\lib\site-packages\django\core\handlers\base.py", line 111, in get_response
response = callback/request, *callback_args, **callback_kwargs/
File "C:\Users\Marcin\Documents\oneclickcos\oneclickcos\mainapp\decorators.py", line 26, in _wrapped_view
return view_func/request, *args, **kwargs/
File "C:\Users\Marcin\Documents\oneclickcos\lib\site-packages\django\db\transaction.py", line 209, in inner
return func/*args, **kwargs/
File "C:\Users\Marcin\Documents\oneclickcos\lib\site-packages\django\db\transaction.py", line 203, in __exit__
self.exiting/exc_value, self.using/
File "C:\Users\Marcin\Documents\oneclickcos\lib\site-packages\django\db\transaction.py", line 288, in exiting
leave_transaction_management/using=using/
File "C:\Users\Marcin\Documents\oneclickcos\lib\site-packages\django\db\transaction.py", line 52, in leave_transaction_management
connection.leave_transaction_management//
File "C:\Users\Marcin\Documents\oneclickcos\lib\site-packages\django\db\backends\__init__.py", line 119, in leave_transaction_management
raise TransactionManagementError/"Transaction managed block ended with "
TransactionManagementError: Transaction managed block ended with pending COMMIT/ROLLBACK
要清楚,我检查了关于这个主题的其他问题,他们没有解决我的问题。
没有找到相关结果
已邀请:
3 个回复
裸奔
赞同来自:
这是问题的原因。 我需要替换它:
另外,其他答案 SO 显示交易控制装饰器
隐藏所有例外
而且导致排除交易管理。 不幸的是,最简单的诊断方法是在没有装饰器的情况下运行,看看是否发生异常,或者包装整个视图 try/except.
风见雨下
赞同来自:
https://docs.djangoproject.com ... ually
如果您的视图更改数据并且不包含 commit// 或者 rollback//, 那 Django 叫例外 TransactionManagementError.
因此,您在交易中有更改,并且您需要回滚或固定/犯罪/ 在最后退款之前。
不起作用,因为里面的交易
受控
.
风见雨下
赞同来自:
, 例如
甚至读取数据库需要固定/犯罪//回滚 /包括在上下文处理器内部/
https://docs.djangoproject.com ... dling