Почему не работают валидаторы?

Я хочу чтобы во время логина если я ввел слишком короткий пароль - у меня высвечивалось сообщение о том что пароль должен быть определенной длины. Как я понимаю это легко делается при помощи wtforms.validators однако, несмотря на то что валидатор работает - сообщение не высвечивается. На примере формы для логина:

#forms.py
from flask_wtf import FlaskForm
from wtforms import StringField, PasswordField, SubmitField
from wtforms.fields.html5 import DateField
from wtforms.validators import DataRequired, Email, EqualTo, Length

class LoginForm(FlaskForm):

    email = StringField('Email (phone for mobile account)',validators=[DataRequired(),Email()])
    password = PasswordField('Password',validators=[DataRequired(), Length(min=8, max=20, message='Must be more than 8 chars')])
    submit = SubmitField('Sign In!')

далее в login.html

#login.html
{% extends "base.html" %}

{% block content %}

<h1>Sign in</h1>

  <form method="POST">
    {{form.hidden_tag()}}
    {{form.email.label}} <br> {{form.email()}} <br>
    {{form.password.label}} <br> {{form.password()}} <br>
    <br>
    {{form.submit(class="btn btn-warning")}}
  </form>

{% endblock %}

Ответы (1 шт):

Автор решения: Dmitrii Trubetskoy

Спасибо andreymal, необходимо было в директории templates создать файл _formhelpers.html в котором было бы:

{% macro render_field(field) %}
  <dt>{{ field.label }}
  <dd>{{ field(**kwargs)|safe }}
  {% if field.errors %}
    <ul class=errors>
    {% for error in field.errors %}
      <li>{{ error }}</li>
    {% endfor %}
    </ul>
  {% endif %}
  </dd>
{% endmacro %}

Далее изменить неработающее на

{% from "_formhelpers.html" import render_field %}
<form method=post>
  {{form.hidden_tag()}}
  <dl>
    {{form.email.label}} <br>
    {{render_field(form.email)}} <br>
    {{form.password.label}} <br>
    {{render_field(form.password)}} <br>
    <br>
    {{form.submit(class="btn btn-warning")}}
  </dl>
  <p><input type=submit value=Register>
</form>

сообщения работают

→ Ссылка