2017-07-28 124 views
1

我想要使用column_property來獲取完整地址,包括一列中的街道和門牌號碼。問題是我想組合兩個不同類型的列。門牌號爲整數類型和街道是nummber串的,這就是爲什麼我得到以下錯誤:在sqlalchemy中使用column_property,包括整數列

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

那麼它的工作原理,如果我把housenumber爲String列,但會不會是一個乾淨的方式,我猜。

有沒有辦法將housenumber與字符串類型的列組合到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) 

回答

3

你需要做一個cast

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

完美,爲我工作。謝謝!在我的情況下,codesnippet如下所示:fulladdress = db.column_property(street +「」+ db.cast(housenumber,db.String)) – mbijou