[1.6.x] Removed a mention of `Form._errors` from the documentation.

Also removed a sentence that was incorrect: raising a
`ValidationError` inside `Form.clean` doesn't clear the
`cleaned_data` attribute.

Thanks to loic84 and timograham for the review.

Backport of 9aa6d4bdb6 and
0048ed77c7 from master.
This commit is contained in:
Baptiste Mispelon 2013-11-12 20:27:21 +01:00
parent 4aed1ee339
commit b6acc4f749
1 changed files with 6 additions and 10 deletions

View File

@ -80,6 +80,10 @@ overridden:
cleaned data if you override this method (by default, ``Form.clean()`` cleaned data if you override this method (by default, ``Form.clean()``
just returns ``self.cleaned_data``). just returns ``self.cleaned_data``).
Since the field validation methods have been run by the time ``clean()`` is
called, you also have access to the form's errors attribute which
contains all the errors raised by cleaning of individual fields.
Note that any errors raised by your ``Form.clean()`` override will not Note that any errors raised by your ``Form.clean()`` override will not
be associated with any field in particular. They go into a special be associated with any field in particular. They go into a special
"field" (called ``__all__``), which you can access via the "field" (called ``__all__``), which you can access via the
@ -97,7 +101,8 @@ These methods are run in the order given above, one field at a time. That is,
for each field in the form (in the order they are declared in the form for each field in the form (in the order they are declared in the form
definition), the ``Field.clean()`` method (or its override) is run, then definition), the ``Field.clean()`` method (or its override) is run, then
``clean_<fieldname>()``. Finally, once those two methods are run for every ``clean_<fieldname>()``. Finally, once those two methods are run for every
field, the ``Form.clean()`` method, or its override, is executed. field, the ``Form.clean()`` method, or its override, is executed whether or not
the previous methods have raised errors.
Examples of each of these methods are provided below. Examples of each of these methods are provided below.
@ -106,15 +111,6 @@ field, if the ``Field.clean()`` method raises a ``ValidationError``, any
field-specific cleaning method is not called. However, the cleaning methods field-specific cleaning method is not called. However, the cleaning methods
for all remaining fields are still executed. for all remaining fields are still executed.
The ``clean()`` method for the ``Form`` class or subclass is always run. If
that method raises a ``ValidationError``, ``cleaned_data`` will be an empty
dictionary.
The previous paragraph means that if you are overriding ``Form.clean()``, you
should iterate through ``self.cleaned_data.items()``, possibly considering the
``_errors`` dictionary attribute on the form as well. In this way, you will
already know which fields have passed their individual validation requirements.
.. _raising-validation-error: .. _raising-validation-error:
Raising ``ValidationError`` Raising ``ValidationError``