Устранение ошибки TemplateDoesNotExist в Django, несмотря на правильную конфигурацию
Я относительно новичок в Django и столкнулся с проблемой загрузки шаблонов в моем проекте. Несмотря на то, что я следую учебникам и правильно настраиваю структуру проекта, я сталкиваюсь с ошибкой TemplateDoesNotExist.
Вот структура моего проекта:
storefront\__pycache__
storefront\storefront\__init__.py
storefront\storefront\asgi.py
storefront\storefront\settings.py
storefront\storefront\urls.py
storefront\storefront\wsgi.py
playground
playground\__pycache__
playground\migrations
playground\templates
playground\__init__.py
playground\admin.py
playground\apps.py
playground\models.py
playground\tests.py
playground\urls.py
playground\views.py
db.sqlite3
manage.py
В моем файле settings.py конфигурация шаблона выглядит следующим образом:
python
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',
],
},
},
]
Однако при попытке отрисовки шаблона с помощью функции render в моем представлении:
#python
from django.shortcuts import render
def say_hello(request):
return render(request, 'playground/hello.html')
Я сталкиваюсь с ошибкой TemplateDoesNotExist для playground/hello.html. Я проверил структуру проекта, и она кажется правильной.
Может ли кто-нибудь подсказать, что может быть причиной этой проблемы и как ее решить? Любые объяснения или предложения для новичков были бы очень признательны!
Шаблон должен быть помещен в:
playground/templates/playground/hello.html
или в любом другом каталоге шаблонов, но при этом с подкаталогом playground
под этим каталогом templates/
.
Таким образом, имя приложения повторяется. Это позволяет переопределять шаблоны из разных приложений. Например, если вы хотите переопределить шаблоны admin
, вы можете поместить шаблон в playground
с именем playground/templates/admin/some_template.html
, чтобы переопределить some_template.html
из приложения admin
.