Атрибут template_name

Атрибут template_name класса LoginView определяет путь к HTML-шаблону, который будет отображаться при обращении к представлению входа. По умолчанию используется шаблон 'registration/login.html'. Вы можете переопределить это значение, чтобы использовать собственный шаблон для страницы входа. Атрибут задается как строковое значение с путем к файлу шаблона относительно директории загрузки шаблонов.

Синтаксис

pythonclass LoginView(FormView):
  template_name = 'registration/login.html'

Пример

Создадим собственное представление для входа с использованием кастомного шаблона:

pythonfrom django.contrib.auth.views import LoginView
from django.urls import path

class CustomLoginView(LoginView):
  template_name = 'accounts/login.html'

urlpatterns = [
  path('login/', CustomLoginView.as_view(), name='login'),
]

Результат выполнения кода:

python"Страница входа использует шаблон accounts/login.html"

Пример

Используем динамическое определение шаблона в зависимости от типа пользователя:

pythonfrom django.contrib.auth.views import LoginView

class DynamicLoginView(LoginView):
  def get_template_names(self):
    if self.request.GET.get('admin'):
      return 'admin/login.html'
    return 'users/login.html'

Результат выполнения кода:

python"Для администраторов используется admin/login.html"
"Для обычных пользователей используется users/login.html"

Пример

Переопределим шаблон непосредственно при подключении стандартного класса в URL-маршруте:

pythonfrom django.contrib.auth.views import LoginView
from django.urls import path

urlpatterns = [
  path('login/', LoginView.as_view(
    template_name='custom/login.html'
  ), name='login'),
]

Результат выполнения кода:

python"Используется шаблон custom/login.html"

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

  • класс LoginView,
    который используется для создания представления входа
  • атрибут next_page,
    который задает URL для перенаправления после успешного входа
  • класс LogoutView,
    который используется для выхода пользователя из системы
  • декоратор login_required,
    который ограничивает доступ к представлениям для авторизованных пользователей