完整文法結構:
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'))