Автоматизировать команду createuperuser в Django

Автоматизировать команду createuperuser в Django

  1. Создание суперпользователя с помощью Django Shell
  2. Создание суперпользователя с помощью скрипта Python

В Django пользователь с правами администратора называется суперпользователем. Суперпользователи могут все. Они могут создавать новых пользователей, удалять существующих пользователей, манипулировать информацией других пользователей и т. Д.

В Django для создания суперпользователя мы обычно используем команду командной строки python manage.py createduperuser, за которой следует еще несколько входных данных: имя пользователя, адрес электронной почты и пароль.

Но если бы мы могли автоматизировать весь этот процесс или завершить его с помощью одной строчки кода, разве это не было бы замечательно?

В этой статье мы научимся автоматизировать создание суперпользователя.

Создание суперпользователя с помощью Django Shell

Django Shell - это инструмент Python командной строки для взаимодействия с базой данных с помощью API-интерфейсов базы данных Django. Используя Django Shell, мы можем создавать данные в базе данных, изменять существующие данные и даже удалять существующие данные. Кроме того, мы также можем создавать новых пользователей и суперпользователей.

Чтобы создать суперпользователя с помощью Django Shell, используйте следующий скрипт.

echo "from django.contrib.auth import get_user_model; User = get_user_model(); User.objects.create_superuser('userUsername', 'userEmail', 'userPassword')" | python manage.py shell

Этот скрипт сначала импортирует метод get_user_model, чтобы получить модель пользователя, используемую Django.

Этот метод получает ссылку на фактический объект модели пользователя и сохраняет ее в переменной User.

Используя эту ссылку, он затем создает нового суперпользователя с помощью create_superuser(). Этот метод принимает имя пользователя, адрес электронной почты и пароль.

Обратите внимание, что эти поля действительны для пользовательской модели Django по умолчанию. Если вы используете настраиваемую модель пользователя, поля для создания пользователя или суперпользователя изменятся соответствующим образом.

Создание суперпользователя с помощью скрипта Python

Поскольку модели Django доступны повсюду в проекте Django, мы можем использовать их для создания пользователей и суперпользователей. Мы можем создать функцию, которая принимает некоторые входные данные, а затем создает суперпользователя, использующего их для этой задачи.

from django.contrib.auth.models import User

def createSuperUser(username, password, email = "", firstName = "", lastName = "")
    invalidInputs = ["", None]

    if username.strip() in invalidInputs or password.strip() in invalidInputs:
        return None

    user = User(
        username = username,
        email = email,
        first_name = firstName,
        last_name = lastName,
    )
    user.set_password(password)
    user.is_superuser = True
    user.is_staff = True
    user.save()

    return user

Эта функция имеет два обязательных аргумента, а именно имя пользователя и пароль, и три необязательных аргумента. Он создает суперпользователя на основе переданных значений и возвращает ссылку на вновь сформированного суперпользователя.

Vaibhav Vaibhav avatar Vaibhav Vaibhav avatar

Vaibhav is an artificial intelligence and cloud computing stan. He likes to build end-to-end full-stack web and mobile applications. Besides computer science and technology, he loves playing cricket and badminton, going on bike rides, and doodling.

LinkedIn GitHub

Сопутствующая статья - Django User

  • Проверьте зарегистрированного пользователя в Django