在sqlalchemy中使用column_property,包括整数列

时间:2017-07-28 23:32:01

标签: python orm sqlalchemy flask-sqlalchemy

我想使用column_property在一列中获取包含街道和门牌号码的完整地址。问题是我想要组合两个不同类型的列。门牌号是Integer类型,street是nummber字符串,这就是我得到以下错误的原因:

sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) operator     
does not exist: text + integer
LINE 1: SELECT (address.road || ' ') + address.housenumber AS anon...

如果我将housenumber转换为String列,那么它的确有效,但我认为这不是一个干净的方法。

有没有办法在将housenumber与string_property类型的列组合时将housenumber转换为字符串?

这是我的代码:

class Address(CommonColumns):
    __tablename__ = 'address'
    street = db.Column(db.String(80), nullable=False)
    housenumber = db.Column(db.Integer, nullable=False)
    fulladdress = db.column_property(street + " " + housenumber)

1 个答案:

答案 0 :(得分:3)

您需要执行cast

fulladdress = db.column_property(street + " " + db.cast(housenumber, db.String))