Поле формы MonthField
Поле формы MonthField применяется для создания поля ввода, позволяющего пользователю выбрать месяц и год. Оно наследуется от класса Field и использует HTML-тег input с атрибутом type="month". Первым параметром передается имя поля, которое будет использоваться для доступа к данным формы.
Синтаксис
from wtforms import MonthField
field = MonthField(label, [validators])
Пример
Давайте создадим простую форму с полем для выбора месяца:
from flask import Flask, render_template
from wtforms import Form, MonthField, SubmitField
app = Flask(__name__)
class MyForm(Form):
birth_month = MonthField('Birth Month')
submit = SubmitField('Submit')
@app.route('/', methods=['GET', 'POST'])
def index():
form = MyForm()
if form.validate_on_submit():
return f"Selected: {form.birth_month.data}"
return render_template('index.html', form=form)
Шаблон для отображения формы:
<form method="post">
{{ form.birth_month.label }}
{{ form.birth_month() }}
{{ form.submit() }}
</form>
Результат выполнения кода для выбранного месяца 2025-05:
"Selected: 2025-05"
Пример
Давайте добавим валидатор для проверки обязательного заполнения:
from flask import Flask, render_template
from wtforms import Form, MonthField, SubmitField
from wtforms.validators import DataRequired
app = Flask(__name__)
class MyForm(Form):
month = MonthField('Month', validators=[DataRequired()])
submit = SubmitField('Submit')
@app.route('/', methods=['GET', 'POST'])
def index():
form = MyForm()
if form.validate_on_submit():
return f"Month: {form.month.data}"
return render_template('index.html', form=form)
Шаблон для отображения формы с ошибками:
<form method="post">
{{ form.month.label }}
{{ form.month() }}
{% if form.month.errors %}
<ul>
{% for error in form.month.errors %}
<li>{{ error }}</li>
{% endfor %}
</ul>
{% endif %}
{{ form.submit() }}
</form>
Результат выполнения кода при пустом поле:
<ul>
<li>This field is required.</li>
</ul>
Смотрите также
-
класс
Form,
который создает основу для формы -
поле
DateField,
которое позволяет выбрать дату -
поле
DateTimeField,
которое позволяет выбрать дату и время -
валидатор
DataRequired,
который проверяет обязательность поля