Automatizar o comando cria superusuário no Django

Vaibhav Vaibhav 30 janeiro 2023
  1. Crie um superusuário usando o Django Shell
  2. Crie um superusuário usando um script Python
Automatizar o comando cria superusuário no Django

No Django, o usuário com direitos de administrador é conhecido como superusuário. Os superusuários podem fazer tudo. Eles podem criar novos usuários, excluir usuários existentes, manipular informações de outros usuários, etc.

No Django, para criar um superusuário, geralmente usamos um comando de linha de comando, python manage.py trema superusuário, seguido por mais algumas entradas: nome de usuário, email e senha.

Mas se pudéssemos automatizar todo esse processo ou completá-lo usando uma única linha de código, isso não seria incrível?

Neste artigo, aprenderemos a automatizar a criação de superusuário.

Crie um superusuário usando o Django Shell

Django Shell é uma ferramenta Python de linha de comando para interagir com o banco de dados usando APIs de banco de dados do Django. Usando o Django Shell, podemos criar dados no banco de dados, modificar os dados existentes e até mesmo excluir os dados existentes. Além disso, também podemos criar novos usuários e superusuários.

Para criar um superusuário usando Django Shell, use o seguinte script.

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

Este script primeiro importa um método, get_user_model, para obter o modelo de usuário usado pelo Django.

Este método recupera uma referência ao objeto de modelo do usuário real e a armazena na variável User.

Usando esta referência, ele cria um novo superusuário usando create_superuser(). Este método aceita um nome de usuário, um e-mail e uma senha.

Observe que esses campos são válidos para o modelo de usuário padrão do Django. Se você usar um modelo de usuário personalizado, os campos para criar um usuário ou superusuário serão alterados de acordo.

Crie um superusuário usando um script Python

Como os modelos Django estão acessíveis em qualquer lugar no projeto Django, podemos usá-los para criar usuários e superusuários. Podemos criar uma função que aceita algumas entradas e, em seguida, cria um superusuário usando-as para esta tarefa.

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

Esta função possui dois argumentos obrigatórios, a saber, nome de usuário e senha, e três argumentos opcionais. Ele cria um superusuário com base nos valores passados ​​e retorna uma referência ao superusuário recém-formado.

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.

Artigo relacionado - Django User