交易在django中不起作用

时间:2013-10-18 02:49:16

标签: django transactions

我想在我的django项目中使用事务,所以我构建了一个实践视图

views.py中的代码:

@transaction.commit_manually
def test(request):
    import random
    wiki = Entry.objects.get(id=854)
    wiki.title = 'title-{}'.format(random.randrange(1,100))
    wiki.save()
    transaction.rollback()
    return HttpResponse('ok')

如您所见,我更新了wiki.title然后我回滚了它,因此,在我看来,wiki.title不会更新到数据库,但实际上不是,我不是知道原因。

我的环境是django 1.4.2,python 2.7,mysql 5.6.13

文档:https://docs.djangoproject.com/en/1.4/topics/db/transactions/

1 个答案:

答案 0 :(得分:0)

我认为您在使用transaction.commit()修饰视图时必须明确调用@transaction.commit_manually,请参阅:

https://docs.djangoproject.com/en/1.4/topics/db/transactions/#django.db.transaction.commit_manually