我想在我的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/
答案 0 :(得分:0)
我认为您在使用transaction.commit()
修饰视图时必须明确调用@transaction.commit_manually
,请参阅:
https://docs.djangoproject.com/en/1.4/topics/db/transactions/#django.db.transaction.commit_manually