Automatizar el comando createuperuser en Django

Vaibhav Vaibhav 29 junio 2021
  1. Crear superusuario usando Django Shell
  2. Crear superusuario usando un script de Python
Automatizar el comando createuperuser en Django

En Django, el usuario que tiene derechos de administrador se conoce como superusuario. Los superusuarios pueden hacer todo. Pueden crear nuevos usuarios, eliminar usuarios existentes, manipular información de otros usuarios, etc.

En Django, para crear un superusuario, generalmente usamos un comando de línea de comandos, python manage.py createduperuser, seguido de algunas entradas más: nombre de usuario, correo electrónico y contraseña.

Pero si pudiéramos automatizar todo este proceso o completarlo usando una sola línea de código, ¿no sería asombroso?

En este artículo, aprenderemos a automatizar la creación de superusuarios.

Crear superusuario usando Django Shell

Django Shell es una herramienta de Python de línea de comandos para interactuar con la base de datos utilizando las API de base de datos de Django. Con Django Shell, podemos crear datos en la base de datos, modificar datos existentes e incluso eliminar datos existentes. Además, también podemos crear nuevos usuarios y superusuarios.

Para crear un superusuario usando Django Shell, use el siguiente 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 primero importa un método, get_user_model, para obtener el modelo de usuario utilizado por Django.

Este método recupera una referencia al objeto de modelo de usuario real y la almacena en la variable User.

Usando esta referencia, luego crea un nuevo superusuario usando create_superuser(). Este método acepta un nombre de usuario, un correo electrónico y una contraseña.

Tenga en cuenta que estos campos son válidos para el modelo de usuario predeterminado de Django. Si utiliza un modelo de usuario personalizado, los campos para crear un usuario o superusuario cambiarán en consecuencia.

Crear superusuario usando un script de Python

Dado que los modelos de Django son accesibles en todas partes del proyecto Django, podemos usarlos para crear usuarios y superusuarios. Podemos crear una función que acepte algunas entradas y luego crea un superusuario usándolas para esta tarea.

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 función tiene dos argumentos obligatorios, a saber, nombre de usuario y contraseña, y tres argumentos opcionales. Crea un superusuario basado en los valores pasados ​​y devuelve una referencia al superusuario recién 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.

Artículo relacionado - Django User