【发布时间】:2017-02-23 09:20:25
【问题描述】:
我有个小问题类似于Getting fields history before flush
这是我的代码:
user = User.query.filter(User.id == user_id).first()
print(user.first_name)
# Rick
user.first_name = 'Anders'
print(get_history(user, 'first_name'))
# History(added=[u'Anders'], unchanged=(), deleted=[u'Rick'])
db.session.flush()
print(get_history(user, 'first_name'))
# History(added=(), unchanged=[u'Anders'], deleted=())
所以,我可以很容易地获得刷新前的原始值。我可以使用 get_history 和会话的“脏”属性。但是当我做 session.flush() 这个方法显示不正确的结果并且“脏”是空的。
但是,我可以在 session.flush() 之后使用 session.rollback() 回滚这些更改。 这就是为什么我认为可以获得原始值的原因。他们只是躲在某个地方。
但是在哪里呢?
【问题讨论】:
标签: python sqlalchemy flush