Login_user无法获取具有NotImplementedError的用户ID

问题描述 投票:0回答:1

我每次通过错误呼叫login_user时,我的应用程序都会失败“ NotImplementedError:无id属性-覆盖get_id”。为什么失败了?

@app.route('/login', methods=['GET', 'POST'])
def login():
if current_user.is_authenticated:
    return redirect(url_for('home'))
form = LoginForm()
if form.validate_on_submit():
    user = User.query.filter_by(email=form.email.data).first()
    if user and bcrypt.check_password_hash(user.password, form.password.data):
        login_user(user, remember=True)
    else:
        flash('Login Unsuccessful. Please check email and password', 'danger')
        return redirect(url_for('login'))
return render_template('login.html', title='login', form=form)

@login_manager.user_loader
def load_user(userid):
    return User.query.get(userid)

class User(UserMixin):
    def get_id(self):
        return self.userid

class User(UserMixin, db.Model):
    userid = db.Column(db.String(50), primary_key=True)
    name = db.Column(db.String(200), nullable=False)
    username = db.Column(db.String(200), unique=True, nullable=False)
    designation = db.Column(db.String(200), nullable=False)
    password = db.Column(db.String(200), nullable=False)
    dateofjoin = db.Column(db.DateTime, nullable=True)
    email = db.Column(db.String(200), unique=True, nullable=False)
    address = db.Column(db.String(200), nullable=False)
    mobile = db.Column(db.String(200), nullable=False)

   def __repr__(self):
       return f"User('{self.userid}','{self.username}', '{self.email}', '{self.designation}', '{self.password}')"
flask-login
1个回答
0
投票

在您的用户模型中,将primary_key'userid'重命名为'id'。更新数据库,然后重试。

© www.soinside.com 2019 - 2024. All rights reserved.