Automatiser la commande createsuperuser dans Django

Vaibhav Vaibhav 30 janvier 2023
  1. Créer un superutilisateur à l’aide de Django Shell
  2. Créer un superutilisateur à l’aide d’un script Python
Automatiser la commande createsuperuser dans Django

Dans Django, l’utilisateur qui a des droits d’administrateur est appelé superutilisateur. Les super-utilisateurs peuvent tout faire. Ils peuvent créer de nouveaux utilisateurs, supprimer des utilisateurs existants, manipuler les informations d’autres utilisateurs, etc.

Dans Django, pour créer un superutilisateur, nous utilisons généralement une commande en ligne de commande, python manage.py createsuperuser, suivie de quelques entrées supplémentaires : nom d’utilisateur, e-mail et mot de passe.

Mais si nous pouvions automatiser tout ce processus ou le terminer en utilisant une seule ligne de code, ne serait-ce pas incroyable ?

Dans cet article, nous allons apprendre à automatiser la création de superutilisateurs.

Créer un superutilisateur à l’aide de Django Shell

Django Shell est un outil Python en ligne de commande permettant d’interagir avec la base de données à l’aide des API de base de données de Django. En utilisant Django Shell, nous pouvons créer des données dans la base de données, modifier des données existantes et même supprimer des données existantes. De plus, nous pouvons également créer de nouveaux utilisateurs et super utilisateurs.

Pour créer un superutilisateur à l’aide de Django Shell, utilisez le script suivant.

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

Ce script importe d’abord une méthode, get_user_model, pour obtenir le modèle utilisateur utilisé par Django.

Cette méthode récupère une référence à l’objet modèle utilisateur réel et la stocke dans la variable User.

En utilisant cette référence, il crée ensuite un nouveau superutilisateur en utilisant create_superuser(). Cette méthode accepte un nom d’utilisateur, un e-mail et un mot de passe.

Notez que ces champs sont valides pour le modèle utilisateur par défaut de Django. Si vous utilisez un modèle d’utilisateur personnalisé, les champs pour créer un utilisateur ou un superutilisateur changeront en conséquence.

Créer un superutilisateur à l’aide d’un script Python

Les modèles Django étant accessibles partout dans le projet Django, nous pouvons les utiliser pour créer des utilisateurs et des superutilisateurs. Nous pouvons créer une fonction qui accepte certaines entrées, puis crée un superutilisateur les utilisant pour cette tâche.

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

Cette fonction a deux arguments obligatoires, à savoir le nom d’utilisateur et le mot de passe, et trois arguments facultatifs. Il crée un superutilisateur basé sur les valeurs transmises et renvoie une référence au superutilisateur nouvellement formé.

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.

Article connexe - Django User