在SQLAlchemy中更新派生值

时间:2014-06-16 19:45:22

标签: python-2.7 sqlalchemy

通常的sqlalchemy用法:

my_prop = Column(“my_prop”,Text)

我想要不同的语义。假设一个对象有一组字段(propA,propB,propC)。我想维护一个从这些字段派生的数据库列(比方说,propA + propB + propC)。我想在更新这些字段集中的任何一个时更新列。谢谢。

1 个答案:

答案 0 :(得分:1)

Hybrid properties提供您正在寻找的功能。它们允许您编写可在查询中使用的python属性。

如果您想拥有名称列并提供对名字和姓氏属性的访问权限,可以采用以下方式开始。

@hybrid_property
def first_name(self):
    # get the first name from the name column

@first_name.setter
def first_name(self, value):
    # update the name column with the first name replaced

@first_name.expression
def first_name(cls):
    # return a sql expression that extracts the first name from the name column
    # this is appropriate to be used in queries