AttributeError: 'BaseQuery' object has no attribute 'is_authenticated'

AttributeError: 'BaseQuery' object has no attribute 'is_authenticated'

@login_manager.user_loader
def load_user(user_id):
    return Users.query.filter_by(id=user_id)

这是我的用户加载程序

@app.route('/login', methods=['POST','GET'])
def login():
    msg = ''
    if request.method == 'POST':
        username = request.form['user']
        password = request.form['pass']
        hashed_password = sha256(password.encode('utf-8')).hexdigest()
        user = Users.query.filter_by(username=username).first()
        if user:
            if user.hashed_password ==hashed_password:
                login_user(user, remember=True)
                return redirect(url_for('add'))
        else:
            msg = 'incorrect username or password'
    return render_template('login.html',msg=msg)

这是我的登录代码,我不知道这里出了什么问题,但我得到了 AttributeError: 'BaseQuery' object has no attribute 'is_authenticated' error please help

变化:

@login_manager.user_loader
def load_user(user_id):
    return Users.query.filter_by(id=user_id)

至:

@login_manager.user_loader
def load_user(user_id):
    return Users.query.filter_by(id=user_id).first()

如果您不使用 first(),return 类型将是 BaseQuery。