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

Django模板中extends与block功能失效问题求助

Django Templates extends和block功能失效的解决办法

问题代码与文件结构

父模板template.html

<!DOCTYPE html>
<html>
   <body>
      {% block theTitle %}
      {% endblock %}
    </body>
</html>

子模板textComponent.html

{% extends 'templates/template.html' %} {% block theTitle %}
<div>what is going on?</div>
{% endblock %}

文件结构

  • _templates
    • template.html
    • textComponent.html

解决步骤

  1. 修正extends路径引用
    子模板中extends的路径错误。Django会自动在配置的模板目录下查找文件,你的模板都在_templates目录内,因此不需要额外添加templates/前缀,直接引用父模板文件名即可:

    {% extends 'template.html' %}
    {% block theTitle %}
    <div>what is going on?</div>
    {% endblock %}
    
  2. 确认模板目录配置
    打开项目的settings.py,找到TEMPLATES配置项,确保_templates目录已被添加到DIRS列表中,示例如下:

    TEMPLATES = [
        {
            'BACKEND': 'django.template.backends.django.DjangoTemplates',
            'DIRS': [BASE_DIR / '_templates'],
            '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',
                ],
            },
        },
    ]
    

    这里的BASE_DIR是项目根目录,确保_templates的路径和实际目录完全匹配。

  3. 检查文件名与目录拼写
    确认目录名为_templates而非其他拼写,同时模板文件名没有多余下划线(比如若实际文件名是__template.html,需改为template.html,否则Django无法识别)。

  4. 规范模板标签格式
    保证extends标签单独占一行,避免和其他标签挤在同一行导致解析错误,这是Django模板解析的常见注意事项。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 00:25:31