Automatizza il comando createsuperuser in Django

Vaibhav Vaibhav 29 giugno 2021
  1. Crea Superuser usando Django Shell
  2. Crea un superutente usando uno script Python
Automatizza il comando createsuperuser in Django

In Django, l’utente che dispone dei diritti di amministratore è noto come superutente. I superutenti possono fare tutto. Possono creare nuovi utenti, eliminare utenti esistenti, manipolare informazioni di altri utenti, ecc.

In Django, per creare un superutente, generalmente utilizziamo un comando da riga di comando, python manage.py createsuperuser, seguito da alcuni altri input: nome utente, email e password.

Ma se potessimo automatizzare l’intero processo o completarlo utilizzando una singola riga di codice, non sarebbe fantastico?

In questo articolo impareremo ad automatizzare la creazione del superutente.

Crea Superuser usando Django Shell

Django Shell è uno strumento Python da riga di comando per interagire con il database utilizzando le API del database di Django. Utilizzando Django Shell, possiamo creare dati nel database, modificare i dati esistenti e persino eliminare i dati esistenti. Inoltre, possiamo anche creare nuovi utenti e super utenti.

Per creare un superutente usando Django Shell, usa il seguente 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

Questo script importa prima un metodo, get_user_model, per ottenere il modello utente utilizzato da Django.

Questo metodo recupera un riferimento all’oggetto del modello utente effettivo e lo memorizza nella variabile User.

Usando questo riferimento, crea quindi un nuovo superutente usando create_superuser(). Questo metodo accetta un nome utente, un’e-mail e una password.

Nota che questi campi sono validi per il modello utente predefinito di Django. Se utilizzi un modello utente personalizzato, i campi per creare un utente o un superutente cambieranno di conseguenza.

Crea un superutente usando uno script Python

Poiché i modelli Django sono accessibili ovunque nel progetto Django, possiamo usarli per creare utenti e superutenti. Possiamo creare una funzione che accetti alcuni input e quindi crei un superutente che li utilizzi per questo compito.

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

Questa funzione ha due argomenti obbligatori, ovvero nome utente e password, e tre argomenti facoltativi. Crea un superutente in base ai valori passati e restituisce un riferimento al superutente appena formato.

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.

Articolo correlato - Django User