Атрибут username

Атрибут username класса User является основным идентификатором пользователя в системе аутентификации Django. Он представляет собой строковое поле, которое должно быть уникальным для каждого пользователя. Этот атрибут используется при входе в систему и для идентификации пользователя в различных частях приложения. По умолчанию username может содержать буквы, цифры и символы @/./+/-/_.

Синтаксис

pythonuser.username

Для изменения значения атрибута username используется прямое присваивание:

pythonuser.username = "new_username"
user.save()

Пример . Использование в модели

Рассмотрим базовую модель User с атрибутом username и дополнительными полями:

pythonfrom 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

Получим имя пользователя для текущего авторизованного пользователя:

pythonfrom django.contrib.auth.models import User

# Получаем пользователя по ID
user = User.objects.get(id=1)
print(user.username)

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

python"john_doe"

Пример . Проверка существования username

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

pythonfrom 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")

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

python"Username already exists"

Пример . Создание пользователя с указанным username

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

pythonfrom 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}")

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

python"User created: jane_doe"

Пример . Изменения username

Изменим имя пользователя и сохраним изменения:

pythonfrom django.contrib.auth.models import User

user = User.objects.get(username="jane_doe")
user.username = "jane_smith"
user.save()
print(user.username)

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

python"jane_smith"

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

  • атрибут email,
    который хранит электронную почту пользователя
  • атрибут is_active,
    который определяет активность учетной записи
  • метод get_username,
    который возвращает имя пользователя
  • метод create_user,
    который создает нового пользователя