Атрибут username
Атрибут username класса User является основным идентификатором пользователя в системе аутентификации Django. Он представляет собой строковое поле, которое должно быть уникальным для каждого пользователя. Этот атрибут используется при входе в систему и для идентификации пользователя в различных частях приложения. По умолчанию username может содержать буквы, цифры и символы @/./+/-/_.
Синтаксис
user.username
Для изменения значения атрибута username используется прямое присваивание:
user.username = "new_username"
user.save()
Пример . Использование в модели
Рассмотрим базовую модель User с атрибутом username и дополнительными полями:
from django.contrib.auth.models import User
from django.db import models
class UserProfile(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
bio = models.TextField(max_length=500, blank=True)
birth_date = models.DateField(null=True, blank=True)
def __str__(self):
return self.user.username
Пример . Получение username
Получим имя пользователя для текущего авторизованного пользователя:
from django.contrib.auth.models import User
# Получаем пользователя по ID
user = User.objects.get(id=1)
print(user.username)
Результат выполнения кода:
"john_doe"
Пример . Проверка существования username
Проверим, существует ли пользователь с заданным именем:
from django.contrib.auth.models import User
username = "john_doe"
if User.objects.filter(username=username).exists():
print("Username already exists")
else:
print("Username is available")
Результат выполнения кода:
"Username already exists"
Пример . Создание пользователя с указанным username
Создадим нового пользователя с заданным именем:
from django.contrib.auth.models import User
user = User.objects.create_user(
username="jane_doe",
email="jane@example.com",
password="secure_password123"
)
print(f"User created: {user.username}")
Результат выполнения кода:
"User created: jane_doe"
Пример . Изменения username
Изменим имя пользователя и сохраним изменения:
from django.contrib.auth.models import User
user = User.objects.get(username="jane_doe")
user.username = "jane_smith"
user.save()
print(user.username)
Результат выполнения кода:
"jane_smith"
Смотрите также
-
атрибут
email,
который хранит электронную почту пользователя -
атрибут
is_active,
который определяет активность учетной записи -
метод
get_username,
который возвращает имя пользователя -
метод
create_user,
который создает нового пользователя