Automatiser la commande createsuperuser dans Django
- Créer un superutilisateur à l’aide de Django Shell
- Créer un superutilisateur à l’aide d’un script Python
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é.