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

Django模板报错Invalid block tag: 'endblock' 是什么原因怎么解决?

报错原因

该报错本质是Django模板引擎解析模板时,识别到了不符合语法规则的endblock标签,常见触发原因如下:

  • 块语法书写不规范:部分旧版本Django对{% endblock 块名 %}的写法兼容性差,若endblock和后续块名之间存在多余的全角空格、换行,或块名与开头定义的块名不一致,会触发解析错误
  • 存在孤立的endblock标签:项目中某份模板文件内出现了没有对应{% block 块名 %}开头的单独endblock标签,或block标签存在语法残缺(比如漏写百分号、大括号)
  • 模板加载路径错误:extends引用的模板路径有误,Django加载到了其他存在语法错误的重名模板文件
排查修复步骤
  • 简化block闭合写法:所有模板的块闭合标签统一使用不带块名的{% endblock %},Django会自动匹配最近的未闭合块,规避块名和空格导致的语法问题
    修正后的home.html代码:
    {% extends 'job_main/base.html' %} 
    {% block title %}Home{% endblock %} 
    {% block content %}
    <h1>Home Page</h1>
    {% endblock %}
    
    修正后的job_main/base.html代码:
    <html>
    <head>
    <title>{% block title %}{% endblock %} | Jobs Portal</title>
    </head>
    <body>
    <!-- 省略中间其他内容 -->
    {% block content %}{% endblock %}
    </body>
    </html>
    
  • 验证模板路径配置:检查settings.py中TEMPLATES配置的DIRS参数是否包含模板根目录,确认base.html存放路径为job_main/templates/job_main/base.html,和extends的引用路径一致
  • 全局排查模板语法:搜索项目内所有模板文件,检查是否存在孤立的endblock字符串、残缺的block标签语法
  • 清理模板缓存后重启项目,验证是否修复

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.15 16:36:03