from functools import wraps
from django.db import transaction
def my_transaction(func):
@wraps(func)
def wrap(*args, **kwargs):
# 开启事务
try:
with transaction.atomic():
save_point = transaction.savepoint()
func(*args, **kwargs)
# 提交事务 参数是上面定义的保存点
transaction.savepoint_commit(save_point)
except Exception as e:
transaction.savepoint_rollback(save_point)
return my_transaction
return wrap
1.将my_transaction导入到view。之后在请求函数上进行装饰 @my_transaction