【发布时间】:2017-01-12 21:47:39
【问题描述】:
我正在使用 Django 的命令来执行一些涉及数据库操作的任务:
class SomeCommand(BaseCommand):
@transaction.atomic
def handle(self, *args, **options):
# Some stuff on the database
如果在我的程序执行期间抛出异常,@transaction.atomic 保证回滚。我可以强制这种行为而不抛出异常吗?比如:
# Doing some stuff, changing objects
if some_condition:
# ABANDON ALL CHANGES AND RETURN
【问题讨论】:
-
我怀疑没有办法做到这一点。您将不得不提出异常并安静地捕获它。我创建了一个临时异常子类,将其捕获并通过,全部在
atomic块内。
标签: django