【发布时间】:2019-09-09 19:06:59
【问题描述】:
原子块可以嵌套。在这种情况下,当一个内部块 成功完成,它的效果仍然可以回滚,如果 稍后会在外部块中引发异常。
我是否正确理解我不需要在do_stuff() 之前添加@transaction.atomic 装饰器?如果 do_staff 更改数据库并发生异常,则父 view_func 将负责回滚。
from django.db import transaction
@transaction.atomic
def viewfunc(request):
# This code executes inside a transaction.
do_stuff()
这不需要,对吗?
from django.db import transaction
@transaction.atomic
def do_stuff():
do_something_in_the_database()
@transaction.atomic
def viewfunc(request):
# This code executes inside a transaction.
do_stuff()
【问题讨论】: