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.
This commit is contained in:
Baptiste Mispelon 2013-11-12 20:27:21 +01:00
parent 8ed96464e9
commit 9aa6d4bdb6
1 changed files with 6 additions and 10 deletions

View File

@ -78,6 +78,10 @@ overridden:
like. This method can return a completely different dictionary if it wishes, like. This method can return a completely different dictionary if it wishes,
which will be used as the ``cleaned_data``. which will be used as the ``cleaned_data``.
Since the field validation method 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 previous steps.
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
@ -95,7 +99,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, no matter if
the previous methods have raised errors or not.
Examples of each of these methods are provided below. Examples of each of these methods are provided below.
@ -104,15 +109,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``