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

Django配置templates目录实现registration内base.html继承根目录模板

问题说明

当前templates文件夹绝对路径:
/Users/AndyKw/Documents/Python/Else/Yes/templates

目录结构:

templates (存放need.html)
|
|-- admin
|
|-- registration (存放base.html)

核心要求:

  • 配置settings.py的TEMPLATES参数时,将registration目录设为模板主目录
  • registration内的base.html可通过{% extends %}标签正常加载templates根目录下的need.html
  • 不允许调换两个文件的存放位置(该方案为最低优先级,开发团队不认可)

可行解决方案

方案1:按优先级配置TEMPLATES的DIRS路径(最推荐,符合所有要求)

Django模板加载器会严格按照DIRS列表的路径顺序从上到下查找模板,只要将两个路径按优先级顺序写入配置即可:registration路径放前面满足「主目录」的优先级要求,再追加templates根目录路径作为兜底查找路径。

配置步骤:

  1. 打开项目下的settings.py,找到TEMPLATES配置段
  2. 修改DIRS配置,推荐用BASE_DIR拼接相对路径,不要写死绝对路径,避免项目迁移后失效:
from pathlib import Path
# 保留原有BASE_DIR配置即可,一般默认指向manage.py所在的项目根目录
BASE_DIR = Path(__file__).resolve().parent.parent

TEMPLATES = [
    {
        "BACKEND": "django.template.backends.django.DjangoTemplates",
        # 路径顺序决定查找优先级,前面的路径优先匹配
        "DIRS": [
            BASE_DIR / "templates" / "registration", # 高优先级:registration主目录
            BASE_DIR / "templates", # 兜底: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",
            ],
        },
    },
]
  1. 配置完成后,直接在base.html中写{% extends "need.html" %}即可正常加载,不需要加任何路径前缀。加载逻辑为:先在registration目录查找need.html,找不到自动跳转至下一个配置的templates根目录查找,完全匹配需求。

方案2:模板内直接写相对上层路径(零配置改动)

如果不想调整settings.py配置,直接利用Django模板支持的相对路径规则即可,不需要修改任何全局配置。
在registration/base.html中,extends标签按如下写法:

{% extends "../need.html" %}

其中../代表当前模板所在目录的上一级,也就是templates根目录,可直接定位到need.html文件。
注意:该方法兼容Django 1.8及以上所有版本,低于1.8的老旧版本可能存在相对路径解析问题,优先选择方案1更稳妥。

不推荐方案

调换两个文件的存放路径:将need.html移入registration文件夹、base.html移至templates根目录。该方案不符合团队目录规范,仅作为最后兜底选项。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 12:45:41