在 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)

在 SQLAlchemy 中使用 OR

在 sqlalchemy 中使用 DATEADD

在烧瓶中使用 SqlAlchemy 模型

sqlalchemy在pythonweb中开发的使用(基于tornado的基础上)

python web开发-flask中使用sqlalchemy