Класс LoginView

Класс LoginView из встроенного модуля аутентификации Django предоставляет готовое представление для входа пользователей в систему. Он обрабатывает GET-запросы для отображения формы входа и POST-запросы для проверки учетных данных и выполнения входа. После успешной аутентификации пользователь перенаправляется на указанную страницу.

Основные параметры конфигурации:

Синтаксис

pythonfrom django.contrib.auth.views import LoginView

class CustomLoginView(LoginView):
  template_name = 'registration/login.html'
  next_page = 'home'

Пример

Базовая настройка представления для входа пользователей:

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

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

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

python"URL /login/ обрабатывается LoginView"

Пример

Настройка представления с кастомным шаблоном и перенаправлением:

pythonfrom 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'),
]

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

python"Пользователь перенаправлен на дашборд после входа"

Пример

Использование кастомной формы аутентификации:

pythonfrom 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'

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

python"Пользователь прошел проверку активности аккаунта"

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

  • функция authenticate,
    которая проверяет учетные данные пользователя
  • функция login,
    которая выполняет вход пользователя в систему
  • класс LogoutView,
    который обрабатывает выход пользователя из системы
  • декоратор login_required,
    который ограничивает доступ к представлениям