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

Raf*_*ael 3 python sqlalchemy

我有一个SQLAlchemy模型实例,其中有新的值等待commit()将它们写入数据库.如何在不发出数据的情况下检查数据库中的旧值rollback()

dav*_*ism 6

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

import sqlalchemy as sa

old = {}

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