我正在尝试使用sqlalchemy(我使用flask-sqlalchemy)并且嗖嗖地对文本搜索结果进行分页。我的简化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:&#39;结果&#39;对象没有属性&#39; id&#39;
我刚开始使用sqlalchemy所以这可能是我身边的一个非常简单的错误? 谢谢你的帮助 卡尔
编辑:确定问题是连接到变量MEMBERS_PER_PAGE。如果MEMBERS_PER_PAGE等于搜索结果的数量,我会收到错误。否则它工作正常......
答案 0 :(得分:2)
这似乎是Flask-WhooshAlchemy中的一个错误。在Flask-WhooshAlchemy的github页面上有一个解决问题的公开拉取请求。我最终使用Flask-WhooshAlchemy-Redux,正如拉动请求的讨论中所建议的那样,并且为我修复了分页问题。