【发布时间】:2021-05-16 17:44:09
【问题描述】:
假设我们有一个 SQLAlchemy ORM 类 User 和一个 User 对象:
ed_user = User(name='ed', nickname='eddie')
我们可以找到对象的状态
state_of_ed_user = sqlalchemy.inspect(ed_user)
状态按预期从瞬态开始
assert state_of_ed_user.transient == True
然后在 session.commit() 之后变成持久化
session.commit()
assert state_of_ed_user.persistent == True
但是,在 session.delete() 之后,我预计对象的状态会更新为已删除 (https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.state.InstanceState.deleted),但是它没有更新。
session.delete(ed_user)
assert state_of_ed_user.deleted == False
assert state_of_ed_user.persistent == True
我对 session.delete 的理解有误吗? 我正在使用 SQLAlchemy 1.3.23。
【问题讨论】:
标签: python sqlalchemy