Класс 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 необходимо импортировать его из модуля аутентификации:
from django.contrib.auth.models import User
Пример
Создадим обычного пользователя с заданными параметрами:
from 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)
Результат выполнения кода:
"john_doe"
"john@example.com"
Пример
Создадим суперпользователя с помощью специального менеджера:
from 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)
Результат выполнения кода:
"True"
"True"
Пример
Получим пользователя из базы данных и проверим его состояние:
from django.contrib.auth.models import User
user = User.objects.get(username="john_doe")
print(user.is_active)
print(user.is_staff)
Результат выполнения кода:
"True"
"False"
Пример
Изменим статус пользователя, сделав его неактивным:
from django.contrib.auth.models import User
user = User.objects.get(username="john_doe")
user.is_active = False
user.save()
print(user.is_active)
Результат выполнения кода:
"False"
Смотрите также
-
метод
create_user,
который создает нового пользователя с заданным паролем -
метод
create_superuser,
который создает суперпользователя с полными правами -
метод
set_password,
который устанавливает новый пароль пользователя -
метод
check_password,
который проверяет соответствие переданного пароля