You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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>

修正要点说明

  1. 移除{% for results in data% }中%和}之间的空格,改为{% for result in data %},符合Django模板标签语法规范。
  2. 将循环变量统一为result,和循环体内调用的变量名保持一致,同时单数命名更贴合单条数据的语义。

额外提示

Django模板标签对格式要求严格,标签内的空格仅用于分隔关键字和变量,不能随意添加在{%或%}内部。后续遇到类似标签错误,优先检查标签的语法格式是否符合{% 标签内容 %}的规范。

内容的提问来源于stack exchange,提问作者Harshal Bhavane

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 14:45:36