2016-05-27 39 views
1

login_userとエラーNotImplementedError: No 'id' attribute - override 'get_id'を呼び出したときに私のアプリケーションが失敗します。私のユーザはid属性を持っています。なぜこれは失敗するのですか?login_userがユーザーIDを取得できません

if form.validate_on_submit(): 
    user = User.query.filter_by(email=form.email.data).first() 

    if user is not None and user.verify_password(form.password.data): 
     print(user.user_id) 
     login_user(user, False) 
     return jsonify({'response': user.user_id}) 
class User(UserMixin, db.Model): 
    __tablename__ = 'users' 
    user_id = db.Column(db.Integer, primary_key = True) 
    username = db.Column(db.String(64), unique=True, index=True) 
    email = db.Column(db.String(64), unique=True, index=True) 
    password_hash = db.Column(db.String(128)) 

答えて

2

login_user呼び出しユーザーインスタンスにget_idUserMixinは、id属性を返すか、または例外を発生させるget_idメソッドを提供します。 id属性を定義しておらず、その名前を(冗長に)user_idとしています。属性の名前をid(できれば)にし、get_idを無効にしてuser_idを返します。

+0

私は例外を書きましたが、それは私に有用な情報を与えていませんでした。この状況に対する適切な例外は何ですか? – Brosef

+0

Flask-Login *は例外を発生させますが、あなたはそれを書きません。デバッグモードでトレースバックに表示されます。もしそうでなければ、あなたは何かが誤って構成されていました。 – davidism

関連する問題