1

我正在尝试让 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')

关于如何解决这个问题的任何想法?

4

3 回答 3

2

默认情况下,Django 使用两个模板加载器来定位模板:

TEMPLATE_LOADERS = (
    'django.template.loaders.filesystem.Loader',
    'django.template.loaders.app_directories.Loader',
)

首先,文件系统加载器检查 TEMPLATE_DIRS 中的所有目录以查看它是否可以找到命名模板。如果失败,app_directories 加载器将在当前应用程序的 /templates/ 目录中查找命名模板。通过这种方式,您可以使用可轻松覆盖的可重用应用程序提供默认模板。

在您的情况下,Django 将在此处查找模板:

blog/blog/templates/homepage/index.html
blog/apps/homepage/templates/homepage/index.html
于 2013-01-04T19:50:36.117 回答
1

你给你的TEMPLATE_DIRS. 该settings.py文件blog在 project的 package 中blog,但您的templates文件夹在blogproject 中,而不是在blogpackage 中。您必须提供项目的绝对目录并加入templates它。

于 2013-01-04T19:23:43.107 回答
0

在 django 1.10 中,导航到父项目目录中的 path/to/settings.py,查找:

TEMPLATES = [.....]DIR:并在选项中指定 path/to/project_directory

例如(在我自己的情况下):

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',
        ],
    },
},
]
于 2016-08-29T22:43:50.970 回答