python - Flask-login AttributeError: 'User' object has no attribute 'is_active' -
python - Flask-login AttributeError: 'User' object has no attribute 'is_active' -
i have problem flask-login. after filling login form , clicking 'submit' i'm error:
flask-login attributeerror: 'user' object has no attribute 'is_active'
some test users created. , no problems login template
traceback:
traceback (most recent phone call last): file "c:\flask_prj\project\venv\lib\site-packages\flask\app.py", line 1836, in __call__ homecoming self.wsgi_app(environ, start_response) file "c:\flask_prj\project\venv\lib\site-packages\flask\app.py", line 1820, in wsgi_app response = self.make_response(self.handle_exception(e)) file "c:\flask_prj\project\venv\lib\site-packages\flask\app.py", line 1403, in handle_exception reraise(exc_type, exc_value, tb) file "c:\flask_prj\project\venv\lib\site-packages\flask\app.py", line 1817, in wsgi_app response = self.full_dispatch_request() file "c:\flask_prj\project\venv\lib\site-packages\flask\app.py", line 1477, in full_dispatch_request rv = self.handle_user_exception(e) file "c:\flask_prj\project\venv\lib\site-packages\flask\app.py", line 1381, in handle_user_exception reraise(exc_type, exc_value, tb) file "c:\flask_prj\project\venv\lib\site-packages\flask\app.py", line 1475, in full_dispatch_request rv = self.dispatch_request() file "c:\flask_prj\project\venv\lib\site-packages\flask\app.py", line 1461, in dispatch_request homecoming self.view_functions[rule.endpoint](**req.view_args) file "c:\flask_prj\project\hello.py", line 170, in login login_user(user, form.remember_me.data) file "c:\flask_prj\project\venv\lib\site-packages\flask_login.py", line 576, in login_user if not forcefulness , not user.is_active(): attributeerror: 'user' object has no attribute 'is_active' my code in views:
@app.route('/login', methods=['get', 'post']) def login(): form = loginform() if form.validate_on_submit(): user = user.query.filter_by(email=form.email.data).first() if user not none , user.verify_password(form.password.data): login_user(user, form.remember_me.data) homecoming redirect(request.args.get('next') or url_for('index')) flash('invalid username or password.') homecoming render_template('login.html', form=form) @login_required def logout(): logout_user() flash ('you have been logged out') homecoming redirect(url_for('index')) my model:
class user(db.model): __tablename__ = 'users' id = db.column(db.integer, primary_key=true) username = db.column(db.integer, unique=true, index=true) email = db.column(db.string(64), unique=true, index=true) password_hash = db.column(db.string(128)) @property def password(self): raise attributeerror('password not readable attribute') @password.setter def password(self, password): self.password_hash = generate_password_hash(password) def verify_password(self, password): homecoming check_password_hash(self.password_hash, password) role_id = db.column(db.integer, db.foreignkey('roles.id')) def __repr__(self): homecoming '<user %r>' % self.username
you should subclass usermixin on model. should add together user_loader
from flask.ext.login import usermixin yourapp import login_manager @login_manager.user_loader def get_user(ident): homecoming user.query.get(int(ident)) class user(db.model, usermixin) id = db.column(db.integer, primary_key=true) ### yada yada, know goes here python flask flask-login
Comments
Post a Comment