0

我想在我的 django 项目中使用事务,所以我建立了一个视图来练习

view.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/

4

1 回答 1

0

我认为transaction.commit()当你用 装饰视图时必须显式调用@transaction.commit_manually,请参阅:

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

于 2013-10-28T17:54:24.940 回答