完整语法结构:
from django.db import transaction
try:
with transaction.atomic():
dosomething_1()
dosomething_2()
except Exception as e:
# 事务出错,将会自动回滚,在这里可以做事务失败后的其他操作
...
else:
...
finally:
...
还可以这样:
from django.db import transaction
with transaction.atomic():
dosomething_1()
dosomething_2()
# 事务执行成功后,想要执行的回调函数
transaction.on_commit(lambda: some_celery_task.delay('arg1'))