仅复制SQLAlchemy对象中的数据列

时间:2014-11-05 05:23:22

标签: python sqlalchemy flask-sqlalchemy

我有一个对象

esc = Escalation.query\
    .filter(Escalation.esc_id == esc_id).first()

我想复制除主键和外键之外的所有列,以便我可以在数据库中使用新关系制作此对象的新副本。

目前我只是制作了一个可以使用Escalation实例的构造函数,所以我可以说

new_esc = Escalation(esc)

但我想知道是否有SQLAlchemy的内置功能可以解决这个问题。 我查看了session.merge,但我不想占用整个州。

1 个答案:

答案 0 :(得分:1)

我认为make_transient看起来很棒。这不是内置的,但是我已经将sqlalchemy.ext.declarative.DeclarativeMeta子类化为自定义__init__并为其提供了一些迭代方法,以便您可以将实例值解压缩到这样的新实例中:< / p>

new_esc = Escalation(**esc)
但是,这有点痛苦。元类很脆弱,伤害了我的大脑。