mirror of https://github.com/django/django.git
[1.5.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 of9aa6d4bdb6
and0048ed77c7
from master.
This commit is contained in:
parent
12ff1623d6
commit
8d1f339667
|
@ -82,6 +82,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 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
|
||||||
|
@ -98,7 +102,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.
|
||||||
|
|
||||||
|
@ -107,15 +112,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.
|
|
||||||
|
|
||||||
.. _described later:
|
.. _described later:
|
||||||
|
|
||||||
Form subclasses and modifying field errors
|
Form subclasses and modifying field errors
|
||||||
|
|
Loading…
Reference in New Issue