【发布时间】:2020-06-20 14:42:48
【问题描述】:
在 Flask SQLAlchemy 中,我试图返回标题列中字符串长度小于 60 个字符的所有记录。
我试过了:
Users.query.filter_by(len(self.obj.title) < 60).all()
返回类型错误:TypeError: 'InstrumentedAttribute' 类型的对象没有 len()
然后我尝试了:
Users.query.filter_by(len(self.obj.title.str) < 60).all()
它没有返回错误,但没有返回任何查询,即使 db 中有标题列字符串长度小于 60 个字符的记录。
最后,受到以下q/a的启发,我尝试了:
from sqlalchemy.sql.expression import func
Users.query.filter_by(func.length(self.obj.title.shorttext) < 60).all()
同样,没有错误,但没有返回任何内容。
我错过了什么?
【问题讨论】: