我正在使用django(1.10)和django-restframework(3.4.6)。
我正在尝试在我的代码上调整事务,但它不起作用!
代码如下:
class Home(View):
def get(self, request):
with transaction.atomic():
Episode.objects.filter(id=1).update(volume=12)
if True:
raise Exception('test exception')
Episode.objects.filter(id=2).update(volume=13)
return render(request, 'home/home.html')
我已经尝试使用装饰器(@ transaction.atomic),但它也不起作用!
我尝试在设置中使用ATOMIC_REQUESTS = True,但它也不起作用......
我无法理解为什么这段代码不起作用......我错过了什么?
数据库设置在这里:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'dragon',
'USER': ...,
'PASSWORD': ...,
'HOST': ...,
'PORT': '3306',
'OPTIONS': {
'sql_mode': 'STRICT_TRANS_TABLES',
}
...
mysql数据库引擎是InnoDB。
mysql tx_isolation:REPEATABLE-READ