由于后端用的是ModelForm, 前端又想自己字义写得好看点,但是实际情况看发现每次用自定义的html后都导致了form.is_valid()为False, 所以每次表单提交后都会失败。困扰了一天多,断断续续,没找到原因就接着看书了,一直以为是自己不知道form在html中渲染有哪些字段可以用的锅,实则是因为自己粗心大意,忘记写input标签的name属性,最后在刘大的博客中看到这个字段时才想起来。(http://www.liujiangblog.com/course/django/152 循环表单的字段,标明了有哪些属性可以用)
自己加上name属性后的代码(能正常工作):
<div>
<form class="form-horizontal" action="{% url 'comments:article_comment' article_detail.pk %}" method="post">
{% csrf_token %}
{% for field in form %}
<div class="form-group">
<label for="{{ field.id_for_label }}" class="col-sm-1 control-label">{{ field.label }}</label>
<div class="col-sm-11">
<input type="text" class="form-control" name="{{ field.html_name }}"
placeholder="{{ field.label }}">
</div>
</div>
{% endfor %}
<div class="form-group">
<div class="col-sm-offset-1 col-sm-11">
<button type="submit" class="btn btn-success pull-right">Submit</button>
</div>
</div>
</form>
</div>