1. 渲染表单
1.1. 自动渲染
| 模板变量 | 描述 |
|---|---|
{{ form }} |
渲染默认表单 |
{{ form.as_table }} |
将表单渲染进 <table> (一个输入框一个 <tr>) |
{{ form.as_p }} |
将表单渲染进 <p> |
{{ form.as_ul }} |
将表单渲染进 <ul>(一个输入框一个 <li>) |
1.2. 手动渲染
{{ form.FieldName }} 获取单独字段
每个字段都属性,比如下面的 errors,id_for_label
{{ form.non_field_errors }}<div class="fieldWrapper">{{ form.first_name.errors }}<label for="{{ form.first_name.id_for_label }}">First Name:</label>{{ form.first_name }}</div>
1.3. 循环生成字段
1.3.1. 所有字段
{% for field in form %}<div class="fieldWrapper">{{ field.errors }}{{ field.label_tag }} {{ field }}{% if field.help_text %}<p class="help">{{ field.help_text|safe }}</p>{% endif %}</div>{% endfor %}
1.3.2. 只可见字段
{% for field in form.visible_fields %}<div class="fieldWrapper">{{ field.errors }}{{ field.label_tag }} {{ field }}</div>{% endfor %}
1.3.3. 只不可见字段
{% for hidden in form.hidden_fields %}{{ hidden }}{% endfor %}
2. 重用表单示例
比如可以反复使用评论表单 Comment Form
<!-- file_form.html -->{% include "form_snippet.html" with form=comment_form %}
可复用的表单模板:
<!-- form_snippet.html -->{% for field in comment_form %}<div class="fieldWrapper">{{ field.errors }}{{ field.label_tag }} {{ field }}</div>{% endfor %}
