is_authenticated

Атрибут is_authenticated класса User является стандартным способом проверки статуса аутентификации пользователя в Django. Он всегда возвращает значение типа bool: для аутентифицированных пользователей - True, для анонимных - False. Это свойство широко используется в шаблонах и представлениях для условного отображения контента в зависимости от того, авторизован ли пользователь.

Синтаксис

pythonuser.is_authenticated

Атрибут не принимает никаких аргументов и возвращает булево значение.

Пример

Проверим, аутентифицирован ли текущий пользователь в представлении:

pythonfrom django.shortcuts import render
from django.http import HttpResponse

def my_view(request):
  if request.user.is_authenticated:
    return HttpResponse("Welcome, authenticated user!")
  else:
    return HttpResponse("Please log in.")

Пример

Использование атрибута в шаблоне для отображения разного контента для аутентифицированных и анонимных пользователей:

ninja{% if user.is_authenticated %}
  <p>Привет, {{ user.username }}!</p>
  <a href="/logout/">Выйти</a>
{% else %}
  <p>Вы не авторизованы.</p>
  <a href="/login/">Войти</a>
{% endif %}

Пример

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

pythonfrom django.shortcuts import redirect
from django.http import HttpResponse

def profile_view(request):
  if not request.user.is_authenticated:
    return redirect('/login/')
  return HttpResponse(f"Profile of {request.user.username}")

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

python"Redirects to /login/"

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

  • класс User,
    представляющий модель пользователя в Django
  • класс AnonymousUser,
    представляющий неаутентифицированного пользователя
  • атрибут is_anonymous,
    противоположный по значению атрибуту is_authenticated
  • декоратор login_required,
    который автоматически проверяет аутентификацию пользователя