summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--django/forms/forms.py8
-rw-r--r--docs/topics/forms/index.txt17
2 files changed, 13 insertions, 12 deletions
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 ``<input type="hidden">``
+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::
<form action="/contact/" method="POST">
{% 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