使用事务可以有效的防止插入数据时出现错误影响数据的完整性,再出现错误的时候可以回滚事务,做到要么全部插入成功要么全部都不插入
from django.views import View
from main import models
from django.db import transaction
import json
class BillTypeAdd(View):
'''
新增账单类别api
'''
@transaction.atomic # 事务修饰器
def post(self, request):
status = False
data = request.POST.get('data')
# 用于事务保存
savePoint = None
try:
data = json.loads(data)
# 用于存储实例对象
BillTypeModels = []
for item in data:
item.pop('id')
BillTypeModels.append(models.BillType(**item))
savePoint = transaction.savepoint() # 事务保存点
models.BillType.objects.bulk_create(BillTypeModels)
status = True
except Exception as error:
if savePoint:
# 回滚事务
transaction.rollback(savePoint)
status = error.__str__()
return HttpResponse(status)
几处重点需要注意
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。