Я пытаюсь отобразить ошибки, которые должна генерировать защита от колб при неудачной регистрации, неправильной регистрации или чем-то еще, но на самом деле кажется, что ошибки даже не генерируются в моем проекте.
I 'Я использую пользовательский шаблон отображения помощника формы, который выглядит следующим образом (my_render_field):
{{ field(class="w3-input hidden-print w3-white", **kwargs)|safe }}
{% for error in field.errors %}
<div class="w3-panel w3-red w3-display-container">
<span onclick="this.parentElement.style.display='none'"class="w3-button w3-red w3-large w3-display-topright">×</span>
<h3>Error!</h3>
<p> {{ error }}</p>
</div>
{% endfor %}
У меня есть эта штука, работающая для всех, кроме полей, сгенерированных фляг-безопасностью.У меня есть пользовательская форма входа в систему, которая выглядит следующим образом:
<form action="{{ url_for_security('login') }}" method="POST" name="login_form">
{{ login_form.hidden_tag() }}
{{ my_render_field(login_form.email, placeholder='Email') }}
{{ my_render_field(login_form.password, placeholder='Password') }}
<div>
<input type="checkbox" class="w3-check" value="Remember"><label>{{ gettext('Remember Me') }}</label></input>
</div>
<input type="submit" class="w3-button w3-blue" value="Submit">
</form>
Форма входа определяется следующим образом:
from flask_security import LoginForm
@security.login_context_processor
def security_login_processor():
""" Simple function to inject flask-security's LoginForm into my login_form
This function also generates the localised title """
return dict(login_form=LoginForm(), title=gettext('Sign In'))
Однако, убедившись, что SECURITY_FLASH_MESSAGES явно установлено в true, япопробуйте включить всплывающие сообщения, как это:
{% with messages = get_flashed_messages(with_categories=true) %}
{% if messages %}
{% for category, message in messages %}
<p> {{ category }} - {{ message }}</p>
{% endfor %}
{% endif %}
{% endwith %}
И я никогда не получаю вывод.
РЕДАКТИРОВАТЬ:
Теперь кажется, что поля из LoginForm () не имеют валидаторов?Когда я использую login_user_form в моем представлении, он работает как положено, но это означает, что я не могу использовать измененную форму.