Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python django交易不存在';t工作_Python_Django_Transactions - Fatal编程技术网

Python django交易不存在';t工作

Python django交易不存在';t工作,python,django,transactions,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('tes

我正在使用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')
我已经用decorator(@transaction.atomic)试过了,但它不太管用

我在设置中尝试了ATOMIC_REQUESTS=True,但它不太起作用

我不明白为什么这个代码不起作用。。。我错过了什么

此处的db设置:

DATABASES = {
'default': {
    'ENGINE': 'django.db.backends.mysql',
    'NAME': 'dragon',
    'USER': ...,
    'PASSWORD': ...,
    'HOST': ...,
    'PORT': '3306',
    'OPTIONS': {
        'sql_mode': 'STRICT_TRANS_TABLES',
    }
    ...
mysql数据库引擎是InnoDB


mysql tx_隔离:可重复读取

你说的“它不工作”到底是什么意思?发生了什么,你期望发生什么?我期望这两集都会回滚,不会改变。但是第一幕的音量已经改变了,而且已经确定了。你说的“它不起作用”到底是什么意思?发生了什么,你期望发生什么?我期望这两集都会回滚,不会改变。但第1幕的音量已经改变,并承诺。