element.py 中的 SQLAlchemy 错误 - ColumnClause 或 Comparator 都有“描述”

two*_*eet 2 python sqlalchemy flask-sqlalchemy

完整的错误是:

AttributeError: Neither 'ColumnClause' object nor 'Comparator' object
has an attribute 'description' 
Run Code Online (Sandbox Code Playgroud)

发生在 __ repr __ 中的 sqlalchemy\sql\elements.py 中的第 544 行

在 __ getattr__ 中的 sqlalchemy\sql\elements.py 中的第 735 行

我最初发现了这个问题,因为我的烧瓶模板(它遍历 ormobject.__ dict__以将数据输出到表中)没有显示特定的行。

深入python控制台并导入模块后,我通过尝试打印对象的属性来产生此错误。

from app.models import Parcel
o = Parcel.query.get(1)
o.parcelid #string field prints the correct value, no problem
o.yrbuilt #integer field, same, no problem
o.streetnum #string field, throws above error
Run Code Online (Sandbox Code Playgroud)

我的模型(db 变量是SQLAlchemy(app)):

class Parcel(db.Model):
    """
    the county parcel data
    """
    __tablename__ = 'parcel'
    __table_args__ = {'schema':'gisdata'}
    ogc_fid = db.Column(db.Integer, primary_key=True,
        info={'widget': HiddenInput()}
    )
    parcelid = db.Column(db.String(15))
    unit_no = db.Column(db.String(20))
    streetnum = db.column(db.String(100))
    streetname = db.Column(db.String(255))
    city = db.Column(db.String(100))
    mailaddr = db.Column(db.String(255))
    mailcity = db.Column(db.String(100))
    mailstate = db.Column(db.String(5))
    mailzip = db.Column(db.String(20))
    gp_plat = db.Column(db.String(255))
    district = db.Column(db.String(255))
    emv_bldg = db.Column(db.Integer())
    yrbuilt = db.Column(db.Integer())
Run Code Online (Sandbox Code Playgroud)

知道我在这里做错了什么吗?

A. *_*dor 5

Column 应该大写,如:

streetnum = db.Column(db.String(100))

:)