当我使用pyramid_tm时,即使expire_on_commit = False,会话也会过期

时间:2011-08-30 08:52:43

标签: python transactions pyramid

正如标题所说。我想要做的就是在session.add之后从会话中获取返回id(自动生成主键)。如果我在不使用pyramid_tm的情况下手动提交事务,一切都很好,但是当我开始使用pyramid_tm时,似乎忽略了expire_on_commit。有什么建议吗?

1 个答案:

答案 0 :(得分:2)

它不会忽略expire_on_commit,只是在代码运行之后才提交事务,因此您需要刷新并刷新。我就是这样做的:

thing = Thing()
Session.add(thing)
Session.flush()
Session.refresh(thing)
print thing.id