【问题标题】:sqlalchemy error when using whoosh_search and pagination使用 whoosh_search 和分页时出现 sqlalchemy 错误
【发布时间】: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


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-12-20
      • 1970-01-01
      • 2021-03-23
      • 2013-08-30
      • 2012-07-17
      • 2019-07-16
      • 1970-01-01
      相关资源
      最近更新 更多