| | 576 | In the templates |
| | 577 | ---------------- |
| | 578 | |
| | 579 | With the above example, lets put this into a view and show how you can use these |
| | 580 | parts from the template designer's point of view. Assuming you start with a view like: |
| | 581 | |
| | 582 | def contact(request): |
| | 583 | form = ContactForm() |
| | 584 | if request.POST: |
| | 585 | new_data = request.POST.copy() |
| | 586 | form = ContactForm(new_data) |
| | 587 | if form.is_valid(): |
| | 588 | # do form processing here... |
| | 589 | return render_to_response('contact.html', {'form': form}) |
| | 590 | |
| | 591 | Then you can have a simple template that uses the shortcuts for form.as_ul, form.as_p, or form.as_table. An example ``contact.html`` template:: |
| | 592 | |
| | 593 | <form method="POST"> |
| | 594 | {{ form }} |
| | 595 | </form> |
| | 596 | |
| | 597 | or |
| | 598 | |
| | 599 | <form method="POST"> |
| | 600 | {{ form.as_table }} |
| | 601 | </form> |
| | 602 | |
| | 603 | If you wanted to work with the individual inputs of the form, you can either call out the fields directly, or iterate over them: |
| | 604 | |
| | 605 | <form method="POST"> |
| | 606 | <dl> |
| | 607 | {% for field in form %} |
| | 608 | <dt>{{ field.label }}</dt> |
| | 609 | <dd>{{ field }}</dd> |
| | 610 | <dd>{{ field.help_text }}</dd> |
| | 611 | {% if field.errors %}<dd class="myerrors">{{ field.errors }}</dd>{% endif %} |
| | 612 | {% endfor %} |
| | 613 | </dl> |
| | 614 | </form> |
| | 615 | |
| | 616 | Alternately: |
| | 617 | |
| | 618 | <form method="POST"> |
| | 619 | <ul class="myformclass"> |
| | 620 | <li>{{ form.sender.label }} {{ form.sender.label }}</li> |
| | 621 | <li class="helptext" >{{ form.sender.help_text }}</li> |
| | 622 | {% if form.sender.errors %}<ul class="errorlist">{{ form.sender.errors }}</dd>{% endif %} |
| | 623 | |
| | 624 | <li>{{ form.subject.label }} {{ form.subject.label }}</li> |
| | 625 | <li class="helptext" >{{ form.subject.help_text }}</li> |
| | 626 | {% if form.subject.errors %}<ul class="errorlist">{{ form.subject.errors }}</dd>{% endif %} |
| | 627 | |
| | 628 | ... |
| | 629 | </ul> |
| | 630 | </form> |
| | 631 | |
| | 632 | |