SQLAlchemy ORM:为同一列创建2个属性

时间:2018-08-23 08:48:01

标签: python orm sqlalchemy

我正在重构一个旧的Alchemy ORM项目,出于兼容性的原因,我需要保留一些旧的属性名称,并使用新名称重新映射它们。

炼金术ORM提供column_property(attribute)函数,该函数有助于创建引用其他属性的只读新属性。 解决此问题的另一种已知方法是使用hybrid_property

@hybrid_property
def price(self):
    return self.old_price

@price.setter
def price(self, value):
    self.old_price = value

是否还有其他更简洁的方式来获取别名列的获取器和设置器。

1 个答案:

答案 0 :(得分:1)

对于简单镜像,SQLAlchemy提供了synonym()

class Foo(Base):
    old_price = Column(...)
    price = synonym("old_price")