セッションからクラスのインスタンスをデタッチしたいのですが、(クエリを発行せずに) 読み取り可能である必要があります。私は何日も前からドキュメントに目を通してきましたが、私が試みるすべてのアプローチがメッセージにつながります
DetachedInstanceError: Instance <MyModel at 0x36bb190> is not bound to a Session;
attribute refresh operation cannot proceed
私はzope.sqlalchemy
Pyramid のトランザクション マネージャーを使用しています。トランザクションがコミットされた後、オブジェクトを使用できるようにしたい。「キャッシュされた」値、つまりトランザクションがコミットされる前に含まれていた値を読み取るためだけに必要です。
私が見つけた唯一の可能な解決策は、クラス(または属性自体)をラップしてから、変更を手動で追跡することでした(それを行うことはできますが、それは本当に醜く、まったくPythonicではありません)。
SQLAlchemy がこれらの値を更新しようとするのを防ぐ方法はありますか?
None
フォールバックとして、トランザクションがコミットされた後に上記のエラーがスローされない限り、単に を返すことさえできます。