Атрибут is_superuser

Атрибут is_superuser модели User представляет собой булево поле, которое указывает, является ли пользователь суперпользователем. Суперпользователь обладает абсолютными правами доступа во всей административной панели Django и в вашем приложении. Для таких пользователей все проверки прав через методы has_perm и has_module_perms всегда возвращают True. По умолчанию значение атрибута установлено в False.

Синтаксис

pythonuser.is_superuser

Пример

Давайте проверим, является ли текущий пользователь суперпользователем:

pythonfrom django.contrib.auth import get_user_model

User = get_user_model()
user = User.objects.get(username='admin')

if user.is_superuser:
  print("User is superuser")
else:
  print("User is not superuser")

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

python"User is superuser"

Пример

Давайте создадим суперпользователя программно:

pythonfrom django.contrib.auth import get_user_model

User = get_user_model()
superuser = User.objects.create_superuser(
  username='admin',
  email='admin@example.com',
  password='admin123'
)

print(superuser.is_superuser)

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

python"True"

Пример

Давайте отфильтруем всех суперпользователей в системе:

pythonfrom django.contrib.auth import get_user_model

User = get_user_model()
superusers = User.objects.filter(is_superuser=True)

for user in superusers:
  print(user.username)

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

python"admin"
"root"
"superuser"

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

  • атрибут is_staff,
    который определяет доступ пользователя к админ-панели
  • атрибут is_active,
    который определяет активность учетной записи пользователя
  • метод has_perm,
    который проверяет наличие конкретного разрешения у пользователя
  • метод create_superuser,
    который создает нового суперпользователя