#validation #flask #wtforms
#проверка #колба #wtforms
Вопрос:
Я создал класс на python с именем EntryForm и хочу проверить входные данные, чтобы чей-то доход был числом больше 0, и я использую Flask-wtf / wtforms для проверки. Когда я использую приведенный ниже код, InputRequired() работает как ожидалось, но NumberRange — нет. Отрицательные числа или не числовые входные данные не приводят к ошибке.
class EntryForm(FlaskForm):
income = IntegerField('Income', validators=[InputRequired(), NumberRange(min=0, message='Must enter a number greater than 0')])
Здесь вызывается класс
form = EntryForm()
if form.is_submitted():
data = request.form
user_income = int(data.get('income'))
This is the html portion
<form action="/" method="POST">
<p>
{{form.hidden_tag() }}
{{form.income.label}}
{{form.income(size=20)}}
{% for error in form.income.errors %}
{{error}}
{% endfor %}
Ответ №1:
Вы должны вызвать validate_on_submit
, а затем is_submitted
form = EntryForm()
if form.validate_on_submit():
data = request.form
user_income = int(data.get('income'))
...
return
return render('your_template_name.html', form=form)