0

ピラミッドtansaction.commit()でコミットする唯一の方法のようpaster pshellです。Webページの提供には適していることは理解していますが、シェルでは、その後、次の 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

どうすれば回避できますか?

4

2 に答える 2

1

渡すkeep_session=True_ZopeTransactionExtension()

ソース: https://pypi.python.org/pypi/zope.sqlalchemy#long-lasting-session-scopes

于 2013-10-09T11:31:41.110 に答える
0

これはexpire_on_commit、SQLA セッションのオプションによるものだと思います。コミットを実行したら、古いトランザクションで使用していたオブジェクトを更新するか、新しいセッションにマージする必要があります。ポイントは、これが実際にはtransactionモジュール自体に関連していないということです。

于 2011-07-07T18:02:25.413 に答える