Django模板报错:无效的endfor标签,新手求助解决
问题解决:Django模板中"Invalid block tag on line 28: 'endfor'"错误
错误原因分析
你的模板存在两个关键问题:
- for标签语法错误:
{% for results in data% }这一行里,%和}之间多了一个空格,Django模板标签要求{% ... %}格式连续,内部不能随意加空格,这会导致框架无法识别正确的for标签,进而报错找不到对应的endfor。 - 循环变量不匹配:for循环定义的变量是
results,但循环体内使用的是result(单数),后续会导致数据无法正确渲染。
修正后的模板代码
<!DOCTYPE html> <header> CRUD Operation with PostgreSQL </header> <body> <center> <h1>How to create CURD Ops with PostgreSQL</h1> <h3>Learning Django and CURD</h3> <hr/> <table border = "1"> <tr> <th>Employee Id</th> <th>Employee Name</th> <th>Email</th> <th>Occupation</th> <th>Salary</th> <th>Gender</th> </tr> {% for result in data %} <tr> <td>{{result.id}}</td> <td>{{result.name}}</td> <td>{{result.email}}</td> <td>{{result.occupation}}</td> <td>{{result.salary}}</td> <td>{{result.gender}}</td> </tr> {% endfor %} </table> </center> </body>
修正要点说明
- 移除
{% for results in data% }中%和}之间的空格,改为{% for result in data %},符合Django模板标签语法规范。 - 将循环变量统一为
result,和循环体内调用的变量名保持一致,同时单数命名更贴合单条数据的语义。
额外提示
Django模板标签对格式要求严格,标签内的空格仅用于分隔关键字和变量,不能随意添加在{%或%}内部。后续遇到类似标签错误,优先检查标签的语法格式是否符合{% 标签内容 %}的规范。
内容的提问来源于stack exchange,提问作者Harshal Bhavane
相关产品推荐
相关产品推荐

