РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
297 of 818 menu

Атрибут template_name

Атрибут template_name применяется в классе TemplateView для определения HTML-шаблона, который будет использоваться для рендеринга ответа на HTTP-запрос. Этот атрибут является обязательным для класса TemplateView, так как он указывает Django, какой именно шаблон следует загрузить и отобразить. Значение атрибута должно быть строкой, содержащей путь к файлу шаблона относительно директорий, указанных в настройках TEMPLATES.

Синтаксис

from django.views.generic import TemplateView class MyView(TemplateView): template_name = "path/to/template.html"

Пример

Давайте создадим представление, которое отображает главную страницу с использованием шаблона 'index.html':

from django.views.generic import TemplateView class HomeView(TemplateView): template_name = "index.html"

Затем добавим путь к этому представлению в файле urls.py:

from django.urls import path from .views import HomeView urlpatterns = [ path("", HomeView.as_view(), name="home"), ]

Пример

Атрибут template_name может быть переопределен динамически в методе get_template_names. Рассмотрим пример, где выбор шаблона зависит от условия:

from django.views.generic import TemplateView class DynamicTemplateView(TemplateView): template_name = "default.html" def get_template_names(self): if self.request.user.is_authenticated: return ["authenticated.html"] return ["anonymous.html"]

Результат выполнения запроса для аутентифицированного пользователя:

"Authenticated user sees authenticated.html"

Результат выполнения запроса для анонимного пользователя:

"Anonymous user sees anonymous.html"

Смотрите также

  • класс TemplateView,
    который является базовым классом для отображения шаблонов
  • метод get_context_data,
    который передает контекстные данные в шаблон
  • класс ListView,
    который отображает список объектов с использованием шаблона
  • класс DetailView,
    который отображает детальную информацию об одном объекте
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить