Почему я получил ошибку Template does not exist, хотя, казалось бы, Django предлагает гибкость в отношении структуры папок?

Я прочитал несколько сообщений здесь, где люди обсуждали предпочтительную структуру каталогов для хранения различных файлов своего проекта Django. Но я получаю ошибку file-does-not-exist, если я помещаю свои шаблоны во внутреннюю папку my_project вместо внешней папки my_project, которая содержит файл manage.py. Есть ли какой-то файл конфигурации, который определяет расположение шаблонов (и других файлов) по умолчанию? Не могли бы вы помочь мне с изменением команды, если я помещу шаблоны во внутреннюю (подпапку)? Я только что начал свой первый проект Django и буду признателен за вашу помощь.

Ок, django ищет ваши шаблоны в местах по умолчанию. Я рекомендую вам поместить ваши html файлы туда (как новичку).

Места по умолчанию:

- my_site_project/
-- templates/
--- base.html
--- navbar.html
--- footer.html
-- my_app1/
--- templates/
---- my_app1/
----- index_app1.html
----- about_app1.html
-- manage.py

Если вы поместите общую папку templates/ внутрь вашего проекта, в ту же папку, что и manage.py, эти шаблоны будут извлечены.

Если вам нужны шаблоны для конкретного приложения, то по правилам нужно поместить папку внутри вашего приложения, опять же под названием templates/. Это может привести к дублированию, если вы поместите index.html внутри шаблонов вашего приложения, а index.html внутри общих templates/. Поэтому вам необходимо разделить шаблоны вашего приложения по именам. Создайте приложение; создайте внутри него папку templates/; внутри только что созданной папки templates/ создайте еще одну папку my_app1; в этой папке создайте свои .html файлы.

Прочитайте учебник здесь . Возможно, его будет легче понять, чем мою тарабарщину. Это официальный учебник по django.

Часть его:

Сначала создайте каталог с названием templates в вашем каталоге polls. Django будет искать шаблоны в этом каталоге.

Настройка TEMPLATES вашего проекта описывает, как Django будет загружать и отображать шаблоны. Файл настроек по умолчанию конфигурирует DjangoTemplates, чей параметр APP_DIRS установлен в True. По соглашению DjangoTemplates ищет поддиректорию "templates" в каждом из INSTALLED_APPS.

Вы можете в своих settings.py через DIRS указать, где django ищет ваши шаблоны. Хотя как начинающий я не знаю, почему бы вам не придерживаться сначала конвенций.

Вернуться на верх