我有一个对象
esc = Escalation.query\
.filter(Escalation.esc_id == esc_id).first()
我想复制除主键和外键之外的所有列,以便我可以在数据库中使用新关系制作此对象的新副本。
目前我只是制作了一个可以使用Escalation实例的构造函数,所以我可以说
new_esc = Escalation(esc)
但我想知道是否有SQLAlchemy的内置功能可以解决这个问题。 我查看了session.merge,但我不想占用整个州。
答案 0 :(得分:1)
我认为make_transient
看起来很棒。这不是内置的,但是我已经将sqlalchemy.ext.declarative.DeclarativeMeta
子类化为自定义__init__
并为其提供了一些迭代方法,以便您可以将实例值解压缩到这样的新实例中:< / p>
new_esc = Escalation(**esc)
但是,这有点痛苦。元类很脆弱,伤害了我的大脑。