Исключение TemplateDoesNotExist
Исключение TemplateDoesNotExist является подклассом Exception и
возникает в системе шаблонов Django, когда запрашиваемый шаблон
не может быть найден ни в одной из директорий, указанных в настройках
шаблонизатора. Ошибка может происходить как при явном вызове
функций загрузки шаблонов, так и при использовании встроенных
механизмов рендеринга, таких как функции render и
render_to_string.
Исключение обычно содержит информативное сообщение с путём к запрашиваемому шаблону и списком директорий, которые были проверены системой. Это помогает разработчику быстро определить причину проблемы и исправить настройки путей или имя шаблона.
Синтаксис
django.template.exceptions.TemplateDoesNotExist
Пример
Рассмотрим ситуацию, когда мы пытаемся загрузить шаблон с неверным именем:
from django.template import loader
try:
template = loader.get_template('nonexistent.html')
except loader.TemplateDoesNotExist as e:
print(e)
Результат выполнения кода:
"TemplateDoesNotExist: nonexistent.html"
Пример
Исключение может возникнуть при использовании функции
render в контроллере:
from django.shortcuts import render
from django.template.exceptions import TemplateDoesNotExist
def article_list(request):
try:
return render(request, 'articles/list.html')
except TemplateDoesNotExist as e:
return HttpResponse(f"Template error: {e}", status=500)
Результат выполнения кода при отсутствии шаблона:
"Template error: TemplateDoesNotExist: articles/list.html"
Пример
Исключение может содержать подробную информацию о том, какие директории были проверены:
from django.template import loader
try:
template = loader.get_template('missing_template.html')
except loader.TemplateDoesNotExist as e:
print(f"Error: {e}")
print(f"Template name: {e.args[0]}")
Результат выполнения кода:
"Error: TemplateDoesNotExist: missing_template.html"
"Template name: missing_template.html"
Смотрите также
-
исключение
TemplateSyntaxError,
которое возникает при синтаксических ошибках в шаблонах -
исключение
VariableDoesNotExist,
которое возникает при обращении к несуществующей переменной в шаблоне -
исключение
NoReverseMatch,
которое возникает при ошибке разрешения URL-имён в шаблонах -
исключение
Http404,
которое часто используется вместе с шаблонами ошибок