Класс LoginView
Класс LoginView из встроенного модуля аутентификации Django
предоставляет готовое представление для входа пользователей в систему.
Он обрабатывает GET-запросы для отображения формы входа и POST-запросы
для проверки учетных данных и выполнения входа. После успешной
аутентификации пользователь перенаправляется на указанную страницу.
Основные параметры конфигурации:
-
template_name- имя шаблона для отображения формы входа -
next_page- URL для перенаправления после успешного входа -
authentication_form- класс формы для аутентификации
Синтаксис
from django.contrib.auth.views import LoginView
class CustomLoginView(LoginView):
template_name = 'registration/login.html'
next_page = 'home'
Пример
Базовая настройка представления для входа пользователей:
from django.contrib.auth.views import LoginView
from django.urls import path
urlpatterns = [
path('login/', LoginView.as_view(), name='login'),
]
Результат выполнения кода:
"URL /login/ обрабатывается LoginView"
Пример
Настройка представления с кастомным шаблоном и перенаправлением:
from django.contrib.auth.views import LoginView
from django.urls import path
class CustomLoginView(LoginView):
template_name = 'users/login.html'
next_page = 'dashboard'
redirect_authenticated_user = True
urlpatterns = [
path('login/', CustomLoginView.as_view(), name='login'),
]
Результат выполнения кода:
"Пользователь перенаправлен на дашборд после входа"
Пример
Использование кастомной формы аутентификации:
from django.contrib.auth.views import LoginView
from django.contrib.auth.forms import AuthenticationForm
class CustomAuthenticationForm(AuthenticationForm):
def confirm_login_allowed(self, user):
if not user.is_active:
raise ValidationError('Account is disabled')
class SecureLoginView(LoginView):
authentication_form = CustomAuthenticationForm
template_name = 'users/secure_login.html'
next_page = 'profile'
Результат выполнения кода:
"Пользователь прошел проверку активности аккаунта"
Смотрите также
-
функция
authenticate,
которая проверяет учетные данные пользователя -
функция
login,
которая выполняет вход пользователя в систему -
класс
LogoutView,
который обрабатывает выход пользователя из системы -
декоратор
login_required,
который ограничивает доступ к представлениям