使用flask-whooshee出现AttributeError: 'WhoosheeQuery' object has no attribute '_join_entities'

@whooshee.register_model('title','content')
class PostModel(db.Model):
    __tablename__ = 'post'
    id = db.Column(db.Integer,primary_key=True,autoincrement=True)
    title = db.Column(db.String(200),nullable=False)
    content = db.Column(db.Text,nullable=False)
    create_time = db.Column(db.DateTime,default=datetime.now)
    read_count = db.Column(db.Integer,default=0)
    board_id = db.Column(db.Integer,db.ForeignKey("board.id"))
    author_id = db.Column(db.String(100),db.ForeignKey("front_user.id"),nullable=False

@bp.route('/search/')
def index_search():
    q = request.args.get('q','').strip()
    print(q)
    if q == '':
        flash('请输入关键字','warning')
        return redirect(url_for('front.index'))
    result = PostModel.query.whooshee_search(q).order_by(PostModel.create_time.desc()).all()
    print(result)
    return render_template('front/front_search.html',result=result)

代码如下 工厂函数已经注册whooshee 并且本地已经生成whooshee文件

麻烦提供下相关依赖的版本(可以用 pip list 命令输出)和完整的错误输出。

您好。我也遇到了这个问题,百度了下没有找到解决办法。您可以帮我也看一下吗?

pip list截图:屏幕截图 2021-04-21 163926

屏幕截图 2021-04-21 163943

我是注释了flask_whooshee.py 文件中的下面部分就可以搜索了。

if self._join_entities and isinstance(self._join_entities[0], Mapper):
                # SQLAlchemy >= 0.8.0
                entities.update(set([x.entity for x in self._join_entities]))
            else:
                # SQLAlchemy < 0.8.0
                entities.update(set(self._join_entities))
            make sure we can work with aliased entities

把 SQLAlchemy 版本降到 1.4 以下还会报错吗?

pip install sqlalchemy==1.3.15