from django.db import transaction
from django.http import HttpResponse
from django.utils.decorators import method_decorator
# 類中添加裝飾器,保證在該類中所有的數據庫操作都在一個事物中
@method_decorator(transaction.atomic, name='dispatch')
class MyView1(object):
def get(self, request):
return HttpResponse('GET')
def post(self, request):
return HttpResponse('POST')
class MyView2(object):
# 保證在該函數中所有的數據庫操作都在一個事物中
@transaction.atomic
def post(self, request):
# 設置事物保存點(可設多個)
t1 = transaction.savepoint()
# 如果有異常情況可回滾到指定的保存點
transaction.savepoint_rollback(t1)
# 如果沒有異常可提交事物
transaction.savepoint_commit(t1)
return HttpResponse('POST')