31

是否可以从 SQLAlchemy 会话中取消绑定对象?

我已经习惯了deepcopy,但是由于在使用关联代理时这似乎是不可能的,所以我正在寻找另一种解决方案来从会话中删除对象以将其添加到另一个。

4

1 回答 1

42

Expunge 从 Session 中删除一个对象,将持久实例发送到分离状态,并将挂起的实例发送到瞬态:

session.expunge(obj1)

更新:分离的对象可以通过使用附加到相同或另一个会话

session2.add(obj1)

或合并

session2.merge(obj1)

使用 merge(),给定的实例不会放在会话中,并且可以与不同的会话关联或分离。merge() 对于获取任何类型的对象结构的状态而不考虑其来源或当前会话关联并将该状态置于会话中非常有用。

于 2012-06-26T18:31:22.023 回答