9
我想記錄每個操作將使用某些SQLAlchemy模型執行的操作。在SQLAlchemy中跟蹤模型更改
所以,我有一個after_insert,after_delete和before_update鉤,在這裏我將節省模型的以前和當前的表示,
def keep_logs(cls):
@event.listens_for(cls, 'after_delete')
def after_delete_trigger(mapper, connection, target):
pass
@event.listens_for(cls, 'after_insert')
def after_insert_trigger(mapper, connection, target):
pass
@event.listens_for(cls, 'before_update')
def before_update_trigger(mapper, connection, target):
prev = cls.query.filter_by(id=target.id).one()
# comparing previous and current model
MODELS_TO_LOGGING = (
User,
)
for cls in MODELS_TO_LOGGING:
keep_logs(cls)
但有一個問題:當我試圖找到before_update模型鉤子,SQLA返回修改(髒)版本。 如何在更新之前獲取舊版本的模型? 有沒有不同的方式來保持模型的變化?
謝謝!