---------------
Released 2020-11-23
- Drop support for Python < 3.6. :pr:`554`
- :class:`~fields.StringField` sets ``data`` to ``None`` when form
data is empty and an initial value was not provided. Although it
previously set an empty string, ``None`` is consistent with the
behavior of other fields. :pr:`355`
- Specified version of Babel required for setup to avoid errors.
:pr:`430`
- Replaced use of ``getattr``/``setattr`` with regular variable
access. :issue:`482`
- :class:`ValueError` raised by a validator are handled like regular
exceptions. Validators need to raise
:class:`~validators.ValidationError` or
:class:`~validators.StopValidation` to make a validation fail.
:issue:`445`
- :class:`~fields.SelectField`, :class:`~fields.SelectMultipleField` and
:class:`~fields.RadioField` *choices* parameter can be a callable.
:pr:`608`
- Choices shortcut for :class:`~fields.core.SelectMultipleField`.
:issue:`603` :pr:`605`
- Forms can have form-level errors. :issue:`55` :pr:`595`
- Implemented :class:`~wtforms.fields.core.MonthField`. :pr:`530` :pr:`593`
- Filters can be inline. :meth:`form.BaseForm.process` takes a
*extra_filters* parameter. :issue:`128` :pr:`592`
- Fields can be passed the ``name`` argument to use a HTML name
different than their Python name. :issue:`205`, :pr:`601`
- Render attribute names like ``for_`` and ``class_`` are normalized
consistently so later values override those specified earlier.
:issue:`449`, :pr:`596`
- Flags should now be stored in dicts and can take non-boolean values.
A ``DeprecationWarning`` is issued when tuples are used. :issue:`406` :pr:`467`
- Widgets are HTML5 by default. :issue:`594` :pr:`614`
- Fixed a bug when the :class:`~wtforms.fields.core.SelectField` choices
are list of strings. :pr:`598`
- Error messages standardization. :issue:`613` :pr:`620` :pr:`626` :pr:`627`
- :class:`~wtforms.fields.core.SelectMultipleField` `validate_choice`
bugfix. :issue:`606` :pr:`642`
- Fixed SelectMultipleField validation when using choices list shortcut.
:issue:`612` :pr:`661`
- Removed :meth:`form._get_translations`. Use
:meth:`Meta.get_translations <wtforms.meta.DefaultMeta.get_translations>` instead.