Не удается найти шаблоны форм по умолчанию после обновления django с 3.x до 4.x

Я только что обновил django с 3.x до 4.x. Я получаю ошибку template not found:

TemplateDoesNotExist at /admin/login/
django/forms/errors/list/default.html

Шаблон находится в этом месте:

./lib/python3.8/site-packages/django/forms/templates/django/forms/errors/list/default.html

Django пытается искать в этих местах:

django.template.loaders.filesystem.Loader: ./project/templates/django/forms/errors/list/default.html (Source does not exist)
django.template.loaders.app_directories.Loader: ./lib/python3.8/site-packages/django/contrib/admin/templates/django/forms/errors/list/default.html (Source does not exist)
django.template.loaders.app_directories.Loader: ./lib/python3.8/site-packages/django/contrib/auth/templates/django/forms/errors/list/default.html (Source does not exist)
django.template.loaders.app_directories.Loader: ./project/android/templates/django/forms/errors/list/default.html (Source does not exist)
django.template.loaders.app_directories.Loader: ./project/webapp/templates/django/forms/errors/list/default.html (Source does not exist)
django.template.loaders.app_directories.Loader: ./lib/python3.8/site-packages/oauth2_provider/templates/django/forms/errors/list/default.html (Source does not exist)
django.template.loaders.app_directories.Loader: ./lib/python3.8/site-packages/rest_framework/templates/django/forms/errors/list/default.html (Source does not exist)
django.template.loaders.app_directories.Loader: ./lib/python3.8/site-packages/debug_toolbar/templates/django/forms/errors/list/default.html (Source does not exist)
django.template.loaders.app_directories.Loader: ./lib/python3.8/site-packages/ajax_select/templates/django/forms/errors/list/default.html (Source does not exist)

Итак, очевидно, что django даже не заглядывает в свой собственный каталог django.forms, и я не могу понять, почему. Есть ли какие-то новые настройки в 4.x, которые я упускаю?

Я выяснил, почему эти шаблоны не найдены. Если 'django.forms' отсутствует в INSTALLED_APPS, то каталог шаблонов не найден. Я не проверял документацию Django, но, возможно, это побочный эффект ужесточения поиска шаблонов. В настройках по умолчанию есть APP_DIRS: True, но я предполагаю, что у вас не было этого в дикте TEMPLATES, как у меня - поскольку настройки по умолчанию находят шаблон нормально (т.е. при просмотре админки)

Вот что сработало для меня:

DJANGO_APPS = [
    "django.contrib.admin",
    "django.contrib.auth",
    "django.contrib.contenttypes",
    "django.contrib.sessions",
    "django.contrib.sites",
    "django.contrib.messages",
    "django.contrib.staticfiles",
    "django.contrib.humanize",
    "django.forms",
]

NB Я использую шаблон на основе cookie cutter, который отделяет приложения Django от приложений сторонних производителей и проектов.

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