Правило DataRequired
Правило DataRequired применяется к полям
формы Flask-WTF и проверяет, что пользователь
ввёл в поле хоть какое-то значение. Если поле
пустое, валидация не проходит, а в атрибут
errors формы попадает сообщение об ошибке.
В качестве необязательного параметра можно
передать текст сообщения message.
Синтаксис
from wtforms.validators import DataRequired
DataRequired(message=None)
Пример
Давайте создадим форму с обязательным полем
name и проверим её валидацию:
from flask import Flask, render_template
from flask_wtf import FlaskForm
from wtforms import StringField, SubmitField
from wtforms.validators import DataRequired
app = Flask(__name__)
app.config['SECRET_KEY'] = 'secret'
class MyForm(FlaskForm):
name = StringField('Name', validators=[DataRequired()])
submit = SubmitField('Send')
@app.route('/', methods=['GET', 'POST'])
def index():
form = MyForm()
res = form.validate_on_submit()
return render_template('index.html', form=form, res=res)
Давайте выведем форму и результат проверки в шаблоне:
<form method="post">
{{ form.hidden_tag() }}
<p>{{ form.name.label }} {{ form.name() }}</p>
<p>{{ form.submit() }}</p>
</form>
<p>{{ res }}</p>
Результат выполнения кода при отправке пустой формы:
False
Пример
Давайте передадим своё сообщение об ошибке:
from flask import Flask, render_template
from flask_wtf import FlaskForm
from wtforms import StringField, SubmitField
from wtforms.validators import DataRequired
app = Flask(__name__)
app.config['SECRET_KEY'] = 'secret'
class MyForm(FlaskForm):
name = StringField('Name', validators=[DataRequired('Enter name')])
submit = SubmitField('Send')
@app.route('/', methods=['GET', 'POST'])
def index():
form = MyForm()
form.validate_on_submit()
res = form.name.errors
return render_template('index.html', form=form, res=res)
Давайте выведем список ошибок поля
name в шаблоне:
<form method="post">
{{ form.hidden_tag() }}
<p>{{ form.name.label }} {{ form.name() }}</p>
<p>{{ form.submit() }}</p>
</form>
<p>{{ res }}</p>
Результат выполнения кода при отправке пустой формы:
['Enter name']
Смотрите также
-
класс
Form,
который создаёт форму Flask-WTF -
правило
InputRequired,
которое требует именно ввод, а не значение -
правило
Optional,
которое разрешает оставить поле пустым -
атрибут
errors,
который хранит ошибки валидации полей