Flask-login AttributeError: объект 'Пользователь' не имеет атрибута 'is_active'

У меня проблема с флягой-логином. После заполнения формы входа и нажатия «Отправить» я получаю эту ошибку:

Flask-login AttributeError: объект 'Пользователь' не имеет атрибута 'is_active'

Создаются некоторые тестовые пользователи. И никаких проблем с шаблоном входа в систему

Выслеживать:

Traceback (most recent call last): File "C:\flask_prj\project\venv\lib\site-packages\flask\app.py", line 1836, in __call__ return 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 return 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 force and not user.is_active(): AttributeError: 'User' object has no attribute 'is_active' 

Мой код во взглядах:

 @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 is not None and user.verify_password(form.password.data): login_user(user, form.remember_me.data) return redirect(request.args.get('next') or url_for('index')) flash('Invalid username or password.') return render_template('login.html', form=form) @login_required def logout(): logout_user() flash ('You have been logged out') return redirect(url_for('index')) 

Моя модель:

 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 is not a readable attribute') @password.setter def password(self, password): self.password_hash = generate_password_hash(password) def verify_password(self, password): return check_password_hash(self.password_hash, password) role_id = db.Column(db.Integer, db.ForeignKey('roles.id')) def __repr__(self): return '<User %r>' % self.username 

  • требуется плавать? Ошибка с round () в Python
  • Переменная в маршрутизации статических файлов Flask
  • фляжка: как создать проект с помощью нескольких приложений?
  • Как перечислять свойства объекта в Python?
  • Проблема округления на Python
  • Параллельная установка
  • AES в режиме GCM в Python
  • Получить текущее значение списка env.hosts с помощью библиотеки Fabric Fabric
  • 2 Solutions collect form web for “Flask-login AttributeError: объект 'Пользователь' не имеет атрибута 'is_active'”

    Вы должны подклассифицировать UserMixin на своей модели. Вы также должны добавить user_loader

     from flask.ext.login import UserMixin from yourapp import login_manager @login_manager.user_loader def get_user(ident): return User.query.get(int(ident)) class User(db.Model, UserMixin) id = db.Column(db.Integer, primary_key=True) ### yada yada, you know what goes here 

    В документации по фляжке в нем говорится:

    «Чтобы упростить реализацию класса пользователя, вы можете наследовать от UserMixin, который предоставляет стандартные реализации для всех этих методов. (Однако это не требуется».

    Используемые методы будут следующими: is_authenticated () , is_active () , is_anonymous () и get_id () , которые по виду вашей модели отсутствуют. После того, как вы реализуете эти функции для своей модели, не должно быть никаких проблем с Flask-login.

    Interesting Posts

    App Engine, appcfg и сохранение учетных данных

    Как получить текущий путь интерпретатора Python из сценария Python?

    Импортировать экземпляр класса из другого модуля

    Зачем использовать упакованные * args / ** kwargs вместо передачи списка / dict?

    Python scikit-learn: не может клонировать объект … поскольку конструктор, похоже, не задает параметр

    Могу ли я изменить поведение BeautifulSoup на преобразование тегов XML в нижний регистр?

    Как автоматически исправить недопустимую строку JSON?

    Анализ XML-кода из URL-адреса в объект python

    Разделение текстового файла на раздел со специальной разделительной линией – python

    Как установить текущий рабочий каталог в Python?

    Как сделать относительный импорт в Python?

    Связь между двумя сеансами гном-терминала

    Как декодировать JSON с Python

    python unittest: не может называть декорированный тест

    Добавление поля в структурированный массив numpy

    Python - лучший язык программирования в мире.