使用事务能够有效的防止插入数据时出现错误影响数据的完整性,再出现错误的时候能够回滚事务,作到要么所有插入成功要么所有都不插入python
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)
几处重点须要注意django