Атрибут errors
Атрибут errors принадлежит классу Field из библиотеки
WTForms и доступен у любого поля формы. Он представляет
собой список, в который попадают сообщения об ошибках,
возникших при валидации поля. Изначально список пуст,
а заполняется после вызова метода validate у формы.
Если поле прошло проверку, список остаётся пустым.
Синтаксис
field.errors
Пример
Давайте создадим форму с полем и проверим его ошибки:
from flask import Flask
from wtforms import Form, StringField, validators
app = Flask(__name__)
class MyForm(Form):
name = StringField('Name', [validators.Length(min=3)])
form = MyForm()
res = form.name.errors
print(res)
Результат выполнения кода:
[]
Пример
Давайте отправим слишком короткое значение и посмотрим на ошибки:
from flask import Flask
from wtforms import Form, StringField, validators
app = Flask(__name__)
class MyForm(Form):
name = StringField('Name', [validators.Length(min=3)])
form = MyForm(data={'name': 'ab'})
form.validate()
res = form.name.errors
print(res)
Результат выполнения кода:
['Field must be at least 3 characters long.']
Пример
Давайте выведем ошибки поля в шаблоне Flask:
from flask import Flask, render_template, request
from wtforms import Form, StringField, validators
app = Flask(__name__)
class MyForm(Form):
name = StringField('Name', [validators.Length(min=3)])
@app.route('/', methods=['GET', 'POST'])
def index():
form = MyForm(request.form)
form.validate()
return render_template('index.html', form=form)
Шаблон:
{% for error in form.name.errors %}
<p>{{ error }}</p>
{% endfor %}
Результат выполнения кода при пустом значении:
<p>Field must be at least 3 characters long.</p>