详细:
#拿出form对象
{% for form in form_obj %}
<div class="form-group">
#这是渲染label(<label for="id_username">用户名</label>)
<label for="{{ form.auto_id }}">{{ form.label }}</label>
#这是在渲染input <input type="text" name="username" class="form-control" maxlength="8" minlength="3" required id="id_username" />
{{ form }}
#>{{ form.errors.0 }}如果没有错误是不会显示的,有错误则会显示在py中定义form时的错误信息
<span style="color: red" >{{ form.errors.0 }}class="pull-right"></span>
</div>
{% endfor %}
具体用法:
<form action="" method="post" novalidate>
{# <p>第一种渲染方式:代码书写极少,封装程度太高 不便于后续的扩展 一般情况下只在本地测试使用</p>#}
{# {{ form_obj.as_p }}#}
{# {{ form_obj.as_ul }}#}
{# {{ form_obj.as_table }}#}
{# <p>第二种渲染方式:可扩展性很强 但是需要书写的代码太多 一般情况下不用</p>#}
{# <p>{{ form_obj.username.label }}:{{ form_obj.username }}</p>#}
{# <p>{{ form_obj.password.label }}:{{ form_obj.password }}</p>#}
{# <p>{{ form_obj.email.label }}:{{ form_obj.email }}</p>#}
<p>第三种渲染方式(推荐使用):代码书写简单 并且扩展性也高</p>
{% for form in form_obj %}
<p>
{{ form.label }}:{{ form }}
<span style="color: red">{{ form.errors.0 }}</span>
</p>
{% endfor %}
<input type="submit" class="btn btn-info">
</form>