Форум сайта python.su
Имею две вьюхи которые, собственно, говорят сами за себя.
@app.route('/login', methods=['GET', 'POST']) def login(): form = LoginForm() if form.validate_on_submit(): user = User.query.filter_by(user_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) @app.route('/register', methods=['GET', 'POST']) def register(): form = RegisterForm() if form.validate_on_submit(): user = User(user_name=form.user_name.data, user_email=form.user_email.data, password=form.password.data) db.session.add(user) flash('You can now login') return redirect(request.args.get('next') or url_for('login')) return render_template('register.html', form=form)
Офлайн
При отправке каких данных? Registration или Login?
Офлайн
Обе отрабатывают одинаково
Офлайн
Nahtrezer
Проблема такого характера - при отправке данных в форму просходит простой редирект на “/” и всё.
current_user.is_authenticated()
Отредактировано 4kpt_III (Июнь 22, 2015 22:53:01)
Офлайн
Записано в models.py
@login_manager.user_loader def load_user(user_id): return User.get_id(user_id)
{% block page_content %} Hi, {% if current_user.is_authenticated() %} {{ current_user.user_name }} {% else %} anonymous {% endif %} {% endblock %}
Офлайн
Эмм.
@app.login_manager.user_loader def get_user(): pass
Отредактировано 4kpt_III (Июнь 22, 2015 23:08:41)
Офлайн
Но ведь…
https://flask-login.readthedocs.org/en/0.2.11/#how-it-works
В любом случае, не помогло
PS: А pass внутри - это так надо, или там нужно было что-то умное вместо неё написать?
Офлайн
Nahtrezer
PS: А pass внутри - это так надо, или там нужно было что-то умное вместо неё написать?
Офлайн
Добавил в __init__.py
@app.login_manager.user_loader def get_user(user_id): return User.get_id(user_id)
Офлайн
А оно хоть выполняется. Пропринтуйте в местах скрипта. Увидите где поломалось. Если сегодня не найдете, я завтра проверю. Просто я использую classy и у меня там все по-другому построено
P.S. Не забудьте, что объект уже должен существовать в БД! Предварительно создайте объект и запхните в БД, чтобы быть уверенным, что он есть. Или используйте .one() чтобы увидеть ошибку.
Отредактировано 4kpt_III (Июнь 23, 2015 00:02:19)
Офлайн