Django中for标签未闭合错误:需匹配empty或endfor标签
解决Django模板未闭合for标签的错误
你碰到的这个错误是典型的Django模板语法使用失误——你把模板控制标签的分隔符写错了,导致{% for %}标签找不到对应的闭合标签,同时还有CSRF token的标签也犯了同样的错误。
具体错误点分析:
- 在
form-template.html中,你用了{$ endfor %}来闭合循环,但Django的控制标签必须用{% ... %}作为分隔符,所以这个标签无法被识别,系统就认为{% for field in form %}没有闭合。 - 同样在
comment_form.html里,{$ csrf_token %}也是错误的写法,正确的CSRF token标签应该是{% csrf_token %}。
修正后的代码:
form-template.html
{% for field in form %} {{ field.errors }} <label>{{ field.label_tag }}</label> {{ field }} {% endfor %}
comment_form.html
<form action="" method="post"> {% csrf_token %} {% include 'films/form-template.html' %} <button type="submit">Submit</button> </form>
小提醒:
Django模板里的语法规则要记清楚:
- 控制流程标签(for、if、csrf_token、include等):用
{% 标签内容 %} - 变量输出:用
{{ 变量名 }}
别把这两种分隔符搞混,这类小失误很容易引发模板解析错误。
内容的提问来源于stack exchange,提问作者Dan
相关产品推荐
相关产品推荐

