Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

Added documentation for looping over a form's fields in a template

git-svn-id: http://code.djangoproject.com/svn/django/trunk@9030 bcc190cf-cafb-0310-a4f2-bffc1f526a37
  • Loading branch information...
commit 7ac86d17c8d1d39269a4064e9fc2e96c2fd125da 1 parent e820b54
Simon Willison authored
Showing with 38 additions and 0 deletions.
  1. +38 −0 docs/topics/forms/index.txt
View
38 docs/topics/forms/index.txt
@@ -249,6 +249,44 @@ over them::
{% endfor %}
</ol>
{% endif %}
+
+Looping over the form's fields
+------------------------------
+
+If you are using the similar HTML for each of your form fields, you can
+reduce duplicate code by looping through each field in turn using
+``{% for field in form %}``::
+
+ <form action="/contact/" method="POST">
+ {% for field in form %}
+ <div class="fieldWrapper">
+ {{ field.errors }}
+ {{ field.label_tag }}: {{ field }}
+ </div>
+ {% endfor %}
+ <p><input type="submit" value="Send message"></p>
+ </form>
+
+As in the above example, {{ field.errors }} will output a
+``<ul class="errorlist">`` by default. You can further customise the display
+of errors with a ``{% for error in field.errors %}`` loop.
+
+Within this loop, ``{{ field }}`` is an instance of BoundField. BoundField
+also has the following attributes which can be useful in your templates:
+
+ ``{{ field.label }}``
+ The label of the field, e.g. ``Name``.
+
+ ``{{ field.label_tag }}``
+ The field's label wrapped in the appropriate HTML ``<label>`` tag,
+ e.g. ``<label for="id_name">Name</label>``
+
+ ``{{ field.html_name }}``
+ The name of the field that will be used in the input element's name
+ field; this takes the form prefix in to account if it has been set.
+
+ ``{{ field.help_text}}``
+ Any help text that has been associated with the field.
Further topics
==============
Please sign in to comment.
Something went wrong with that request. Please try again.