django交易不起作用

时间:2016-09-02 10:21:57

标签: python django transactions

我正在使用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

0 个答案:

没有答案