我正在尝试让Django开发服务器加载具有以下设置的模板,但它正在抛出错误
TemplateDoesNotExist at /
homepage/index.html
以下是我为编辑这些文件而编辑的文件
blog / blog / settings.py - (剪切与此问题相关的部分)
import os
TEMPLATE_DIRS = (
os.path.join( os.path.dirname(__file__), 'templates' ),
)
博客/应用/网页/ views.py
from django.shortcuts import render_to_response
def index(request):
return render_to_response('homepage/index.html')
有关如何解决这个问题的想法吗?
答案 0 :(得分:2)
默认情况下,Django使用两个模板加载器来定位模板:
TEMPLATE_LOADERS = (
'django.template.loaders.filesystem.Loader',
'django.template.loaders.app_directories.Loader',
)
首先,文件系统加载程序检查TEMPLATE_DIRS中的所有目录,看它是否可以找到命名模板。如果失败,app_directories加载器将在当前应用程序中的/ templates / dir中查找命名模板。这样,您就可以使用可轻松覆盖的可重用应用程序来发布默认模板。
在你的情况下,Django将在这里寻找模板:
blog/blog/templates/homepage/index.html
blog/apps/homepage/templates/homepage/index.html
答案 1 :(得分:1)
您向TEMPLATE_DIRS
提供错误的指示。 settings.py
文件位于项目blog
中的包blog
中,但您的templates
文件夹位于blog
项目中,而不在blog
包中。您必须提供项目的绝对目录并加入templates
。
答案 2 :(得分:0)
在django 1.10中,导航到父项目目录中的path / to / settings.py,查找:
TEMPLATES = [.....]
并在DIR:
选项
(在我自己的情况下):
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [
'/xampp/htdocs/advisory_portal'
],
'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',
],
},
},
]