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. Это предотвращает последующее столкновение с шаблоном с таким же именем в другом приложении.

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