在 sqlalchemy 中使用 column_property,包括整数列
Posted
技术标签:
【中文标题】在 sqlalchemy 中使用 column_property,包括整数列【英文标题】:use column_property in sqlalchemy including integer column 【发布时间】:2017-07-28 23:32:00 【问题描述】:我想使用 column_property 获取完整地址,包括一列中的街道和门牌号。问题是我想组合两个不同类型的列。门牌号是整数类型,街道是数字字符串,这就是我收到以下错误的原因:
sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) operator
does not exist: text + integer
LINE 1: SELECT (address.road || ' ') + address.housenumber AS anon...
如果我将 housenumber 转换为 String 列,它会起作用,但我猜这不是一个干净的方式。
在将门牌号与字符串类型的列组合成 column_property 时,有没有办法将门牌号转换为字符串?
这是我的代码:
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】:你需要做一个cast
:
fulladdress = db.column_property(street + " " + db.cast(housenumber, db.String))
【讨论】:
完美,为我工作。谢谢!在我的情况下,coden-p 如下: fulladdress = db.column_property(street + " " + db.cast(housenumber, db.String))以上是关于在 sqlalchemy 中使用 column_property,包括整数列的主要内容,如果未能解决你的问题,请参考以下文章
SQLAlchemy模型中的进程字段(使用flask_sqlalchemy)