我正在使用SQLAlchemy 0.7。我想在session.flush()
之後發生一些「後處理」,即我需要訪問flush()
中涉及的實例並遍歷它們。 flush()調用將更新數據庫,但涉及的實例也將某些數據存儲在LDAP數據庫中,我希望SQLAlchemy通過調用實例方法來觸發對LDAP數據庫的更新。SQLAlchemy事件接口
我想我會使用after_flush(session, flush_context)
事件,詳細的here,但我如何獲得update()'d
實例的列表?
請注意,如何確定實例上的哪些列已更改(或「髒」)。我已經能夠發現整個實例是否髒,但不是單獨的屬性。
我同意。 'session.new'和'session.dirty'將會工作。但屬性事件不會有你正在尋找的歷史。我在另一篇文章中包含了一個詳細的例子,如果你感興趣:http://stackoverflow.com/questions/15642286/how-can-i-get-a-sqlalchemy-orm-objects-previous-state-after-a- DB-更新/ 15671586#15671586 –