添加h1块及endblock后,为何第4行出现TemplateSyntaxError?
修复Django模板
TemplateSyntaxError: 无效的块标签'endblock' 可能的原因及解决方法:
- 检查模板标签语法:确保
{% endblock %}的书写完全规范,标签内的百分号、大括号与endblock之间无多余空格,也不能漏写符号,必须是{% endblock %}格式,不能写成{% endblock%}或{% end block %}这类错误形式。 - 确认父模板的块定义:你的子模板继承了
index.html,需保证父模板中确实存在title和content这两个块,比如父模板里要有{% block title %}{% endblock %}和{% block content %}{% endblock %}的结构,否则子模板的块无法匹配解析。 - 排查文件特殊字符:模板文件里的隐藏特殊字符(如全角空格、不可见编码字符)可能导致解析失败,建议将内容复制到纯文本编辑器(如Notepad++)重新保存,确保编码为UTF-8且无异常字符。
- 验证模板加载路径:检查Django配置中
TEMPLATES的DIRS和APP_DIRS设置,确认父模板index.html在正确的目录下,能被Django正常加载。
规范后的模板代码示例:
将代码按换行格式化,避免所有标签挤在一行,更易排查问题:
{% extends "index.html" %} {% block title %}My Second Page{% endblock %} {% block content %} <h1>Hello, world! Django First Page</h1> {% endblock %}
内容的提问来源于stack exchange,提问作者MoTiger
相关产品推荐
相关产品推荐

