遇到Django模板'endblock'语法错误,该如何解决?
Django模板继承报错:无效块标签'endblock'
我尝试在index.html中继承base.html文件,但一直出现以下错误:第2行无效块标签'endblock',是否忘记注册或加载该标签?
base.html代码
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>{% block title %}{% endblock %}</title> <!-- {% block css_files %} {% endblock %} --> </head> <body> {% block content %}{% endblock %} </body> </html>
index.html代码
{% extends 'base.html' %} {% block title %} My Blog {% endblock %} {% block content %} Hello {% endblock %}
我已确认花括号与%之间无空格,问题可能出在哪里?
排查方向:
- 确认模板引擎配置:检查项目
settings.py的TEMPLATES配置,确保BACKEND设置为'django.template.backends.django.DjangoTemplates',避免使用不兼容的模板引擎导致标签解析失败。 - 验证模板路径配置:确保
base.html所在的目录被添加到TEMPLATES的DIRS列表中,或者放在对应app的templates文件夹下(需确保该app已添加到INSTALLED_APPS),否则Django无法找到父模板,会导致继承逻辑异常。 - 调整模板标签格式:将
index.html中的每个模板标签单独换行,避免标签连写可能引发的解析问题:{% extends 'base.html' %} {% block title %} My Blog {% endblock %} {% block content %} Hello {% endblock %} - 排查特殊字符:复制粘贴可能引入不可见的特殊字符,建议手动重新输入模板标签部分,或用编辑器开启显示隐藏字符功能排查异常字符。
- 检查自定义标签库:如果项目中使用了自定义模板标签,确认是否在模板顶部正确加载(如
{% load my_tags %}),不过你的代码中未使用自定义标签,此点可作为备选排查项。
内容的提问来源于stack exchange,提问作者vishruth
相关产品推荐
相关产品推荐

