transaction.commit_unless_managed()python的用途是什么

时间:2016-12-09 05:57:28

标签: python mysql django

python中transaction.commit_unless_managed()有什么用?

我不太了解交易。在我的代码中,我看到了一个函数transaction.commit_unless_managed(),但我不知道commit_unless_managed()

的用途是什么
transaction.commit_unless_managed()

请解释commit_unless_managed()的用途是什么? 普通commitcommit_unless_managed()

之间存在差异

1 个答案:

答案 0 :(得分:4)

:id是一个能够解决它所涉及的问题的函数。如果代码位于非托管事务块中,它会发出事务提交。注: Django 1.8中删除了map

你为什么要用它?如果您有一个可以在托管事务块和非托管事务块中调用的公共函数,则可以使用commit_unless_managed,以便非托管事务代码路径发出提交。例如:

commit_unless_managed

在此示例中,commit_unless_managed会在从from django.db import transaction @transaction.commit_manually() def managed(): test() @transaction.autocommit() def unmanaged(): test() def test(): # process some db commands transaction.commit_unless_managed() 调用时发出提交,但在从test调用时则不会。