python中transaction.commit_unless_managed()
有什么用?
我不太了解交易。在我的代码中,我看到了一个函数transaction.commit_unless_managed()
,但我不知道commit_unless_managed()
transaction.commit_unless_managed()
请解释commit_unless_managed()
的用途是什么?
普通commit
和commit_unless_managed()
答案 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
调用时则不会。