链接:https://www.jianshu.com/p/46b2aa2d5a23
form.as_p
渲染表单为一系列的p标签,每个p标签包含一个字段:
<p> <label for="id_subject">Subject:</label> <input id="id_subject" type="text" name="subject" maxlength="100" /> </p>
form.as_ul
渲染表单为一系列的li标签,每个li 标签包含一个字段,它不包含ul标签:
<li> <label for="id_subject">Subject:</label> <input id="id_subject" type="text" name="subject" maxlength="100" /> </li>
form.as_table
输出表单为一个HTML的table:
<tr> <th> <label for="id_subject">Subject:</label> </th> <td> <input id="id_subject" type="text" name="subject" maxlength="100" /> </td> </tr>
for field in form
通过迭代form,获取其中的所有field。field可引用的包括{{ field.label_tag }} , {{ field }} , {{ field.errors }} :
{% for field in form %} <div class="form-group"> {{ field.label_tag }} <div class=""> {{ field }} </div> {{ field.errors }} </div>
{% endfor %}
- field.label_tag
{{ field.label_tag }}输出为field的label元素:
<label for="id_message">Message:</label> - field
{{ field }}输出为field的input
<input type="text" name="message"
id="id_message" /> - field.errors
{{ field.errors }}field的errors元素(errors一般在form验证出错的时候显示)
['This field is required.']
form.fieldname
直接将form作为一个dict,引用其每一个field,比如
{{ form.title }} 引用form中的title这个field:
<div class="form-group"> <label class="control-label"> {{ form.title.label_tag }} </label> <div class=""> {{ form.title }} </div> {{ form.title.errors }} </div>
这种方式一般用于form需要更加精准的样式的时候,逐个元素逐个元素的编排到html中。