Changelog
Version 0.5
Released February 13th, 2010.
- Added a BaseForm class which provides the core processing and validation functionality of Form without requiring declarative subclassing.
- Fields:
- Field labels now default to a humanized field name.
- Fields now have a
short_nameproperty which is the un-prefixed name. - DecimalField now rounds values for display without float coercion. See docs for details on how to format decimals.
- Extensions:
- ext.sqlalchemy.fields now has an additional QuerySelectMultipleField, and all fields can now support multiple-column primary keys.
- ext.sqlalchemy.orm contains tools for making forms from ORM models.
- Added ext.dateutil for flexible date-time parsing.
- Added ext.appengine contributed by Rodrigo Moraes.
- Added AnyOf and NoneOf validators.
Version 0.4
Released October 10th, 2009.
- Fields have much greater control over input processing. Filters have been added to implement a simple way to transform input data.
- Added fields that encapsulate advanced data structures such as dynamic lists or child forms for more powerful field composing.
- Fields now use widgets for rendering.
- All built-in validators have been converted to classes to clean up the code.
Form.auto_populateandField.populatewere renamed topopulate_objto clarify that they populate another object, not the Form or Field. This is an API breaking change.- Dropped support for Python 2.3.
Version 0.3.1
Released January 24th, 2009.
- Several fixes were made to the code and tests to make WTForms compatible with Python 2.3/2.4.
- Form's properties can now be accessed via dictionary-style access such as
form['author']. This also has the intended effect of making variable lookups in Django templates more reliable. - Form and Field construction changes: Form now uses a metaclass to handle
creating its
_unbound_fieldsproperty, and Field construction now gives an instance of the newUnboundFieldclass instead of using a partial function application. These are both internal changes and do not change the API.
Version 0.3
Released January 18th, 2009.
- Validation overhaul: Fields are now responsible for their own validation,
instead of mostly relying on Form. There are also new pre_validate and
post_validate hooks on subfields, adding a great deal of flexibility when
dealing with field-level validation. Note that this is an API breaking change
if you have any subfields that override
Field.validate. These will need to be updated to use the new hooks. - Changes in how
process_dataandprocess_formdataare called:process_datano longer accepts thehas_formdataparameter.- At form instantiation time,
process_datawill be called only once for each field. If a model object is provided which contains the property, then this value is used. Otherwise, a keyword argument if specified is used. Failing that, the field's default value is used. - If any form data is sent,
process_formdatawill be called afterprocess_datafor each field. If no form data is available for the given field, it is called with an empty list.
- wtforms.ext.django has been overhauled, both to mirror features and changes of the Django 1.0 release, and to add some useful fields for working with django ORM data in forms.
- The
checkerkeyword argument to SelectField, SelectMultipleField, and RadioField has been renamed tocoerceto reflect the actual functionality of this callable.
Version 0.2
Released January 13th, 2009.
- We have documentation and unit tests!
- Fields now have a
flagsproperty which contain boolean flags that are set either by the field itself or validators being specified on a field. The flags can then be used in checks in template or python code. - Changed the way fields take parameters, they are no longer quasi magic. This is a breaking change. Please see the documentation for the new syntax.
- Added optional description argument to Field, accessible on the field as
description. This provides an easy way to define e.g. help text in the same place as the form. - Added new semantics for validators which can stop the validation chain, with or without errors.
- Added a regexp validator, and removed the not_empty validator in favour of two validators, optional and required. The new validators allow control over the validation chain in addition to checking emptiness.
- Renamed wtforms.contrib to wtforms.ext and reorganised wtforms.ext.django. This is a breaking change if you were using the django extensions, but should only require changing your imports around a little.
- Better support for other frameworks such as Pylons.
Version 0.1
Released July 25th, 2008.
- Initial release.
