创建事务,如果事务内有错误则操作回到节点位置,如果事务内无错误则完成操作
方法一
from django.db import transaction
class A(APIView):
@transaction.atomic # 导入事务
def post(self, request, *args, **kwargs):
try:
save_id = transaction.savepoint() # 记录节点
pass # 操作内容
transaction.savepoint_commit(save_id) # 上传节点
return HttpResponse("OK2")
except Exception as e:
transaction.savepoint_rollback(save_id) # 回到节点
return HttpResponse("错误")
方法二
from django.db import transaction
class A(APIView):
def post(self, request, *args, **kwargs):
with transaction.atomic(): # 导入事务
try:
save_id = transaction.savepoint() # 记录节点
pass # 操作内容
transaction.savepoint_commit(save_id) # 上传节点
return HttpResponse("OK2")
except Exception as e:
transaction.savepoint_rollback(save_id) # 回到节点
return HttpResponse("错误")