Итак, у меня есть простое веб-приложение, которое позволяет администратору создавать учетные записи для пользователей (эта процедура необходима, как эта).Поэтому у меня есть страница управления пользователями, где учетная запись администратора может добавлять новых пользователей в систему.Мне удалось добавить форму WTForms / Flask-Security в простой модальный режим:
<div class="modal-content m-b-20">
<h4>add new user</h4>
<form action="{{ url_for_security('register') }}" method="POST" name="register_user_form">
{{ register_user_form.hidden_tag() }}
{{ render_field_with_errors(register_user_form.email) }}
{{ render_field_with_errors(register_user_form.password) }}
{% if register_user_form.password_confirm %}
{{ render_field_with_errors(register_user_form.password_confirm) }}
{% endif %}
{{ render_field(register_user_form.submit) }}
</form>
</div>
Когда я ввожу новое имя пользователя и пароль, я просто перенаправлен на /
.Я вижу на вкладке «Сеть» инструментов веб-разработчика Firefox, что запрос POST
получает ответ 302 FOUND
.
Так как во время процедуры входа в систему обрабатывает запросы баз данных (я использую sqlite)Я ожидал, что он также автоматически добавит их в базу данных для регистрации.Однако после регистрации записи не были добавлены.Я пытался перехватить запрос POST
вручную, но каким-то образом следующий код никогда не вызывался, хотя форма action
нацелена на /register
.
@APP.route('/register', methods=['GET', 'POST'])
@login_required
@roles_required('admin')
def register():
print('asdf')
.не знаю, как дальше отлаживать это или что я делаю не так.Может быть, это проблема, потому что я пытаюсь зарегистрировать учетную запись как уже вошедший в систему пользователь?
РЕДАКТИРОВАТЬ: Хорошо, после полного отключения login_required
s я теперь могу регистрировать пользователей через мой модальный WTForms,Это означает, что основной проблемой является тот факт, что я уже вошел в систему как пользователь с правами администратора.Кто-нибудь знает, как включить регистрацию в качестве вошедшего в систему пользователя?