Django templateview не распознает имя_моего_шаблона
В настоящее время в настройках я установил мой основной каталог в папку templates, так что у меня есть шаблоны на уровне проекта. В этой папке у меня есть файл home.html.
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [BASE_DIR / "templates"],
'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
from django.views.generic import TemplateView
class HomePageView(TemplateView):
template_name: "home.html"
Всякий раз, когда я запускаю сервер, я получаю эту ошибку: ImproperlyConfigured at /. TemplateResponseMixin требует либо определения 'template_name', либо реализации 'get_template_names()'
Я следую книге (Django для начинающих) и не знаю, почему может возникнуть эта ошибка. Изменился ли синтаксис для template_name? Я проверил всю документацию и кажется, что с именем все в порядке. Я также пытался ввести имя пути к файлу вместо этого.
Любая помощь была бы замечательной.
Спасибо
Вы неправильно использовали представление. Замените :
на =
и все будет в порядке.
Вы делаете аннотацию: следует использовать знак равенства =
вместо двоеточия :
:
from django.views.generic import TemplateView
class HomePageView(TemplateView):
template_name = 'home.html'
Обычно шаблоны также "разделены именами", помещая их в каталог с именем приложения, так:
from django.views.generic import TemplateView
class HomePageView(TemplateView):
template_name = 'app_name/home.html'
и таким образом поместить шаблон в каталог app_name/templates/app_name/home.html
. Это предотвращает последующее столкновение с шаблоном с таким же именем в другом приложении.