Атрибут template_name
Атрибут template_name класса LoginView определяет
путь к HTML-шаблону, который будет отображаться при обращении
к представлению входа. По умолчанию используется шаблон
'registration/login.html'. Вы можете переопределить
это значение, чтобы использовать собственный шаблон для
страницы входа. Атрибут задается как строковое значение
с путем к файлу шаблона относительно директории загрузки
шаблонов.
Синтаксис
class LoginView(FormView):
template_name = 'registration/login.html'
Пример
Создадим собственное представление для входа с использованием кастомного шаблона:
from 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'),
]
Результат выполнения кода:
"Страница входа использует шаблон accounts/login.html"
Пример
Используем динамическое определение шаблона в зависимости от типа пользователя:
from 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'
Результат выполнения кода:
"Для администраторов используется admin/login.html"
"Для обычных пользователей используется users/login.html"
Пример
Переопределим шаблон непосредственно при подключении стандартного класса в URL-маршруте:
from django.contrib.auth.views import LoginView
from django.urls import path
urlpatterns = [
path('login/', LoginView.as_view(
template_name='custom/login.html'
), name='login'),
]
Результат выполнения кода:
"Используется шаблон custom/login.html"
Смотрите также
-
класс
LoginView,
который используется для создания представления входа -
атрибут
next_page,
который задает URL для перенаправления после успешного входа -
класс
LogoutView,
который используется для выхода пользователя из системы -
декоратор
login_required,
который ограничивает доступ к представлениям для авторизованных пользователей