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

如何修复Django报错‘template does not exist: home.html’?

解决Django模板不存在错误:TemplateDoesNotExist: home.html

问题分析

你在视图中引用模板时使用了main/home.html和main/base.html,但当前模板文件直接放在根templates文件夹下,结合settings配置中APP_DIRS=True的规则,Django无法匹配到对应模板路径,导致报错。

解决方法

方法一:遵循Django规范的app内模板结构(推荐)

  1. 假设你的app名称为main,在app目录下创建templates/main子目录,调整后的目录结构应为:
项目根目录/
  main/
    templates/
      main/
        base.html
        home.html
    views.py
    models.py
  项目配置文件夹/
    settings.py
  1. 确保settings.py的INSTALLED_APPS中已注册main:
INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'main',  # 确认该行存在
]
  1. 保持现有视图代码不变,APP_DIRS=True会让Django自动搜索每个已注册app下的templates目录,此时main/home.html就能被正确识别。

方法二:使用项目根目录的templates文件夹

若希望模板放在项目根的templates目录下:

  1. 修改settings.py中的TEMPLATES配置,将根templates目录添加到DIRS中:
import os

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [os.path.join(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',
            ],
        },
    },
]
  1. 可选两种子方案:
    • 方案A:修改视图中的模板引用路径,直接使用文件名:
      def home(response):
          return render(response, "home.html", {'name':'test'})
      def index(response, id):
          ls = ToDoList.objects.get(id=id)
          return render(response, "base.html", {"name":ls.name})
      
    • 方案B:在根templates目录下创建main子文件夹,将base.html和home.html移入,保持现有视图代码不变。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 11:15:46