我正在使用python 3.5.2和django 1.11.6。我的操作系统是win10。我无法在installed_app路径中加载我的模板。
我在“polls / template / polls / index.html”创建了一个文件。我还将应用程序,民意调查添加到INSTALLED_APPS中,并将TEMPLATES中的APP_DIRS设置为True。我无法弄清楚为什么django不会像在教程中告诉我的那样在INSTALLED_APPS模板文件夹中加载模板。
我使用以下代码段在我的视图中加载模板。
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不会搜索路径,“民意调查/模板”。 django搜索的路径如下。
我的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',
],
},
},
]
答案 0 :(得分:1)
您的模板目录错误。它应该是polls/templates/polls/index.html
- 模板,而不是模板。从教程:
首先,在polls目录中创建一个名为 templates 的目录。 Django将在那里寻找模板。
在刚刚创建的templates目录中,创建另一个名为polls的目录,并在其中创建一个名为index.html的文件。换句话说,您的模板应位于 polls / templates / polls / index.html 。
答案 1 :(得分:0)
另一种方法是,您可以在settings.py中的DIRS中的TEMPLATES中设置模板路径。
ROOT_DIR = environ.Path(__file__) - 2
并设置ROOT_DIR(项目的根目录),您可以使用environ将根目录设置为:
polls/templates/polls/index.html
与直接添加PersonID
相比,这是复杂的,但这在一般情况下会有所帮助。当项目进入高阶段时,重要的是以一般方式进行转换。