【发布时间】:2015-10-19 18:56:41
【问题描述】:
我正在尝试使用 sqlalchemy(我使用 flask-sqlalchemy)和 whoosh 对文本搜索结果进行分页。我的简化 models.py 看起来像这样
class User(db.Model):
__searchable__ = ['username']
id = db.Column(db.Integer, primary_key=True)
username = db.Column(db.String(64), index=True, unique=True)
def __repr__(self):
return '<User %r>' % (self.username)
whooshalchemy.whoosh_index(app, User)
所以我只想在我的数据库中搜索用户名。我想我可以用
search_result = models.User.query.whoosh_search(search_txt, MAX_SEARCH_RESULTS).paginate(1, MEMBERS_PER_PAGE, False)
其中 search_txt 是我的搜索文本。如果搜索结果只有一个用户,则此方法有效。但如果是多个用户,我会收到以下错误
AttributeError: 'result' 对象没有属性 'id'
我刚开始使用 sqlalchemy,所以这可能是我这边的一些非常简单的错误? 感谢您的帮助 卡尔
编辑:好的,发现问题与变量 MEMBERS_PER_PAGE 有关。如果 MEMBERS_PER_PAGE 等于搜索结果的数量,则会出现错误。否则它工作正常......
【问题讨论】:
标签: python flask pagination flask-sqlalchemy