diff --git a/django/forms/forms.py b/django/forms/forms.py index 29c4f31115..f5bea10978 100644 --- a/django/forms/forms.py +++ b/django/forms/forms.py @@ -305,15 +305,15 @@ class BaseForm(StrAndUnicode): def hidden_fields(self): """ - Returns a list of all the BoundField objects that correspond to hidden - fields in the HTML output. Useful for manual form layout in templates. + Returns a list of all the BoundField objects that are hidden fields. + Useful for manual form layout in templates. """ return [field for field in self if field.is_hidden] def visible_fields(self): """ - Returns a lits of BoundField objects that do not correspond to hidden - fields. The opposite of the hidden_fields() method. + Returns a list of BoundField objects that aren't hidden fields. + The opposite of the hidden_fields() method. """ return [field for field in self if not field.is_hidden] diff --git a/docs/topics/forms/index.txt b/docs/topics/forms/index.txt index 6cab5b5b90..4dedc225f5 100644 --- a/docs/topics/forms/index.txt +++ b/docs/topics/forms/index.txt @@ -304,16 +304,17 @@ templates: Looping over hidden and visible fields ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -If you are manually laying out a form in a template, you will often want to -work with any hidden fields in a single loop and then treat the visible fields -differently. For example, since hidden fields don't display anything, putting -their error messages "next to" the field isn't going to be very clear to the -reader. So you need to handle errors for those fields a bit differently. +If you're manually laying out a form in a template, as opposed to relying on +Django's default form layout, you might want to treat ```` +fields differently than non-hidden fields. For example, because hidden fields +don't display anything, putting error messages "next to" the field could cause +confusion for your users -- so errors for those fields should be handled +differently. Django provides two methods on a form that allow you to loop over the hidden and visible fields independently: ``hidden_fields()`` and -``visible_fields()``. In a template, you might use these like this (this is a -modification of an earlier example):: +``visible_fields()``. Here's a modification of an earlier example that uses +these two methods::
{% for field in form.visible_fields %} @@ -336,7 +337,7 @@ modification of an earlier example):: This example does not handle any errors in the hidden fields. Usually, an error in a hidden field is a sign of form tampering, since normal form interaction won't alter them. However, you could easily insert some error -displays for those form errors as well. +displays for those form errors, as well. .. versionadded:: 1.1 The ``hidden_fields`` and ``visible_fields`` methods are new in Django