在提交SQLAlchemy模型之前获取更改的值

时间:2015-09-02 14:51:00

标签: python sqlalchemy

我有一个SQLAlchemy模型实例,其新值等待commit()将它们写入数据库。如何在不发出rollback()

的情况下检查数据库中的旧值

1 个答案:

答案 0 :(得分:5)

您可以使用检查api获取每个SQLAlchemy映射属性的历史记录。有关可用的信息,请参阅the docs on History

import sqlalchemy as sa

old = {}

for attr in sa.inspect(item).attrs:
    if attr.history.has_changes():
        old[attr.key] = attr.history.deleted