Django模板报错:第2行无效块标签'endblock',求解决方案
Django模板"endblock"标签报错的解决方法
问题重现
你的模板代码:
{% extends "base.html" %} {% block title %} Home {% endblock %} {% block content %} {% endblock %}
报错提示:Invalid block tag on line 2: 'endblock'. Did you forget to register or load this tag?
解决步骤
- 拆分标签到单独行:Django模板解析器对多行标签的处理更稳定,将每个模板标签单独占一行,避免多个标签挤在同一行导致解析错误:
{% extends "base.html" %} {% block title %} Home {% endblock %} {% block content %} {% endblock %} - 检查base.html的语法:父模板
base.html如果存在未闭合的block标签、错误的自定义标签引用,会导致子模板解析失败。仔细排查父模板的标签是否完整闭合,自定义标签是否正确加载。 - 验证模板配置:确认项目
settings.py中的TEMPLATES配置正确:
确保TEMPLATES = [ { 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': [], 'APP_DIRS': True, 'OPTIONS': { 'context_processors': [ 'django.template.context_processors.debug', 'django.template.context_processors.request', 'django.contrib.auth.context_processors.auth', 'django.contrib.messages.context_processors.messages', ], }, }, ]BACKEND使用Django默认的模板引擎,APP_DIRS为True(如果模板放在app的templates目录下)。 - 排查自定义标签冲突:如果项目中使用了自定义模板标签,检查是否存在与
endblock同名的标签,或者自定义标签的加载是否正确(是否在模板顶部添加{% load 标签库 %})。
内容的提问来源于stack exchange,提问作者Prosy A.
相关产品推荐
相关产品推荐

