使用whoosh_search和分页时sqlalchemy错误

时间:2015-07-29 00:54:00

标签: python flask pagination flask-sqlalchemy

我正在尝试使用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等于搜索结果的数量,我会收到错误。否则它工作正常......

1 个答案:

答案 0 :(得分:2)

这似乎是Flask-WhooshAlchemy中的一个错误。在Flask-WhooshAlchemy的github页面上有一个解决问题的公开拉取请求。我最终使用Flask-WhooshAlchemy-Redux,正如拉动请求的讨论中所建议的那样,并且为我修复了分页问题。