似乎tansaction.commit()
是我必须在金字塔paster pshell
中进行提交的唯一方法。
我理解它在提供网页方面很好,但在shell中,之后,在下一个SQLAlchemy MyModel.my_attribute调用中我得到:
DetachedInstanceError: Parent instance <MyModel at 0x9394d0c> is not bound to
a Session; lazy load operation of attribute 'my_attribute' cannot proceed
我该如何避免呢?
答案 0 :(得分:1)
将keep_session=True
传递给ZopeTransactionExtension()
来源: https://pypi.python.org/pypi/zope.sqlalchemy#long-lasting-session-scopes
答案 1 :(得分:0)
我认为这是由SQLA会话的expire_on_commit
选项引起的。执行提交后,必须刷新与旧事务一起使用的对象或将其合并到新会话中。关键是这实际上并不与transaction
模块本身相关。