【发布时间】:2018-04-16 23:20:43
【问题描述】:
我正在使用 python 3.5.2 和 django 1.11.6。我的操作系统是win10。我无法在 installed_app 路径中加载我的模板。
我在“polls/template/polls/index.html”创建了一个文件。我还将应用程序 polls 添加到 INSTALLED_APPS 中,并将 TEMPLATES 中的 APP_DIRS 设置为 True。我无法弄清楚为什么 django 不会按照教程告诉我的那样将模板加载到 INSTALLED_APPS 模板文件夹中。
我使用以下代码sn-p在我的视图中加载模板。
def index(request):
latest_question_list = Question.objects.order_by('-pub_date')[:5]
template = loader.get_template('polls/index.html')
context = {
'latest_question_list': latest_question_list,
}
return HttpResponse(template.render(context, request))
我得到了这个 TemplateDoesNotExist。 我想知道为什么 django 不搜索路径“polls/template”。 django搜索到的路径如下。
- django.template.loaders.app_directories.Loader: C:\Users\XXX\AppData\Local\Programs\Python\Python35\lib\site-packages\django\contrib\admin\templates\polls\index.html (来源不存在)
- django.template.loaders.app_directories.Loader: C:\Users\XXX\AppData\Local\Programs\Python\Python35\lib\site-packages\django\contrib\auth\templates\polls\index.html (来源不存在)
我的 INSTALLED_APPS 如下。
INSTALLED_APPS = [
'polls.apps.PollsConfig',
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
]
我的模板设置如下。
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [],
'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',
],
},
},
]
【问题讨论】: