session.close()の後にSQLAlchemyでインスタンスを使用する際に問題が発生します。
これはコードです:
session = sqlalchemy.orm.sessionmaker(bind=engine)
object = session.query(Entity).filter(Entity.id == id).one()
object.name = "Foo"
session.commit()
session.close()
print object.name
DetachedInstanceErrorをスローします。
オブジェクトexpunge_all()をデタッチしようとしましたが、何もしませんでした。
ありがとう
編集
何が問題なのかわかりました。将来の参考のために、私は自分の質問に答えます。
close()ステートメントSQLAlchemyがインスタンスを更新しようとした後、オブジェクト属性にアクセスしようとすると、session.commit()はオブジェクトインスタンスを期限切れとして設定します。commit()の後にrefreshを呼び出すと、問題が解決します。