РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
564 of 818 menu

Метод create_superuser

Метод create_superuser применяется к менеджеру пользователей и создает нового суперпользователя с указанными учетными данными. Он автоматически устанавливает для пользователя флаги is_staff, is_superuser и is_active в значение True, что дает ему полный доступ к административной панели. Метод обычно используется в скриптах инициализации или при создании учетных записей администраторов через код.

Синтаксис

UserModel.objects.create_superuser(username, email, password, **extra_fields)

Параметры

Метод принимает обязательные позиционные аргументы: username - имя пользователя, email - адрес электронной почты, password - пароль для учетной записи. Также можно передать дополнительные поля модели через именованные аргументы **extra_fields, например, first_name, last_name или произвольные поля, определенные в кастомной модели пользователя.

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

Создадим суперпользователя с именем "admin", почтой "admin@example.com" и паролем "secure_pass123":

from django.contrib.auth import get_user_model User = get_user_model() superuser = User.objects.create_superuser( username="admin", email="admin@example.com", password="secure_pass123" ) print(superuser.username) print(superuser.is_superuser) print(superuser.is_staff)

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

"admin" "True" "True"

Пример . С дополнительными полями

Создадим суперпользователя с указанием имени и фамилии:

from django.contrib.auth import get_user_model User = get_user_model() superuser = User.objects.create_superuser( username="john_doe", email="john@example.com", password="johnadmin123", first_name="John", last_name="Doe" ) print(f"Full name: {superuser.get_full_name()}") print(f"Is active: {superuser.is_active}")

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

"Full name: John Doe" "Is active: True"

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

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

from django.contrib.auth import get_user_model User = get_user_model() if not User.objects.filter(username="admin").exists(): User.objects.create_superuser( username="admin", email="admin@example.com", password="defaultadmin123" ) print("Superuser created successfully") else: print("Superuser already exists")

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

"Superuser created successfully"

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

  • метод create_user,
    который создает обычного пользователя без прав администратора
  • метод authenticate,
    который проверяет учетные данные пользователя
  • метод login,
    который выполняет вход пользователя в систему
  • метод set_password,
    который устанавливает пароль для существующего пользователя
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить