TemplateDoesNotExist в представлениях Django
Я новичок в Django, в настоящее время следую учебнику на сайте Django для опросов: https://docs.djangoproject.com/en/4.1/intro/tutorial03/
Я не могу отобразить свой шаблон при использовании polls/index.html
. Я следовал дословно, но когда я пытаюсь отобразить запрос в файле views.py
, я получаю ошибку TemplateDoesNotExist
, которая гласит, что источник не найден. Что я не понимаю, так это то, что мой index.html
расположен в правильном месте (IE, mysite > polls > template > polls > index.html) и мои основные настройки точно такие, как указано в руководстве. Я попробовал часто предлагаемый (если он устарел) ответ - добавить os.path.join(SETTINGS_PATH, 'templates')
, однако проблема сохраняется.
В настоящее время я использую Python 3.10 с Django 4.1, но это не должно быть проблемой. Я подтвердил, что мой файл index.html находится в правильном месте, хранясь в templates > polls > index.html.
settings.py
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',
],
},
},
]
views.py
import requests
from .models import Question
from django.http import HttpResponse
from django.template.loader import get_template
# Create your views here.
def index(request):
latest_question_list = Question.objects.order_by('-pub_date')[:5]
context = {'latest_question_list': latest_question_list}
return render(request, 'polls/index.html', context)
Ошибка
polls/index.html
Request Method: GET
Request URL: http://127.0.0.1:8000/polls/
Django Version: 4.1
Exception Type: TemplateDoesNotExist
Exception Value:
polls/index.html
Exception Location: C:\Users\patbc\myproject\lib\site-packages\django\template\loader.py, line 19, in get_template
Raised during: polls.views.index
Python Executable: C:\Users\patbc\myproject\Scripts\python.exe
Python Version: 3.10.4
Python Path:
['C:\\Users\\patbc\\myproject\\mytestsite',
'C:\\Python310\\python310.zip',
'C:\\Python310\\DLLs',
'C:\\Python310\\lib',
'C:\\Python310',
'C:\\Users\\patbc\\myproject',
'C:\\Users\\patbc\\myproject\\lib\\site-packages']
Server time: Tue, 23 Aug 2022 20:33:42 +0000
Вот моя структура каталогов (обратите внимание, что index.html находится в соответствующем подкаталоге, 'polls'): link
Вы неправильно назвали папку. Оно должно быть множественным - templates
, а не template
.