Класс User

Класс User является встроенной моделью Django, расположенной в модуле django.contrib.auth.models. Она служит для представления пользователя системы и содержит основные поля, такие как username, password, email, а также флаги состояния is_active, is_staff и is_superuser. Этот класс используется системой аутентификации Django для управления учетными записями пользователей и предоставляет множество методов для работы с паролями, разрешениями и группами.

Основные поля класса User

Класс User содержит несколько важных полей, которые определяют состояние и свойства пользователя:

username - обязательное текстовое поле (максимальная длина 150 символов), уникальное для каждого пользователя. Используется для входа в систему.

password - поле для хранения хеша пароля. В базе данных хранится не сам пароль, а его хеш с солью.

email - необязательное поле для электронной почты пользователя.

is_active - булево поле, указывающее, активна ли учетная запись. Неактивные пользователи не могут авторизоваться.

is_staff - булево поле, определяющее, имеет ли пользователь доступ к административной панели.

is_superuser - булево поле, дающее пользователю все права без явного назначения разрешений.

Синтаксис

Для использования класса User необходимо импортировать его из модуля аутентификации:

pythonfrom django.contrib.auth.models import User

Пример

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

pythonfrom django.contrib.auth.models import User

user = User.objects.create_user(
  username="john_doe",
  password="secure_pass123",
  email="john@example.com"
)
print(user.username)
print(user.email)

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

python"john_doe"
"john@example.com"

Пример

Создадим суперпользователя с помощью специального менеджера:

pythonfrom django.contrib.auth.models import User

admin_user = User.objects.create_superuser(
  username="admin",
  password="admin_pass",
  email="admin@example.com"
)
print(admin_user.is_staff)
print(admin_user.is_superuser)

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

python"True"
"True"

Пример

Получим пользователя из базы данных и проверим его состояние:

pythonfrom django.contrib.auth.models import User

user = User.objects.get(username="john_doe")
print(user.is_active)
print(user.is_staff)

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

python"True"
"False"

Пример

Изменим статус пользователя, сделав его неактивным:

pythonfrom django.contrib.auth.models import User

user = User.objects.get(username="john_doe")
user.is_active = False
user.save()
print(user.is_active)

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

python"False"

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

  • метод create_user,
    который создает нового пользователя с заданным паролем
  • метод create_superuser,
    который создает суперпользователя с полными правами
  • метод set_password,
    который устанавливает новый пароль пользователя
  • метод check_password,
    который проверяет соответствие переданного пароля