我一直在开发GAE dev_appserver,我的代码很大程度上依赖于Django的事务中间件。我已经在本地进行了测试,但它确实有效。
但是,在部署到GAE之后,不会回滚已提交的模型保存。
示例代码:
@transaction.commit_on_success
def get(self, request):
name = request.GET.get('name')
d = Department(name=name)
d.save()
raise Exception('Failed')
这是因为GAE没有尊重Django交易API,还是我的应用设置出现问题?
FYI django.middleware.transaction.TransactionMiddleware目前是MIDDLEWARE_CLASSES列表中的最后一个
答案 0 :(得分:1)
根据this website,Google App Engine的Django数据库后端不支持Django事务。但是,您可以使用App Engine SDK中的run_in_transaction
方法。