Automatisieren Sie den Befehl createsuperuser in Django
In Django wird der Benutzer mit Administratorrechten als Superuser bezeichnet. Superuser können alles. Sie können neue Benutzer erstellen, bestehende Benutzer löschen, Informationen anderer Benutzer manipulieren usw.
In Django verwenden wir zum Erstellen eines Superusers im Allgemeinen einen Befehlszeilenbefehl, python manage.py createdsuperuser
, gefolgt von einigen weiteren Eingaben: Benutzername, E-Mail und Passwort.
Aber wenn wir diesen ganzen Prozess automatisieren oder mit einer einzigen Codezeile abschließen könnten, wäre das nicht erstaunlich?
In diesem Artikel erfahren Sie, wie Sie die Superuser-Erstellung automatisieren.
Superuser mit der Django Shell erstellen
Django Shell ist ein Python-Befehlszeilentool für die Interaktion mit der Datenbank mithilfe der Datenbank-APIs von Django. Mit Django Shell können wir Daten in der Datenbank erstellen, vorhandene Daten ändern und sogar vorhandene Daten löschen. Darüber hinaus können wir auch neue Benutzer und Superuser erstellen.
Um einen Superuser mit Django Shell zu erstellen, verwenden Sie das folgende Skript.
echo "from django.contrib.auth import get_user_model; User = get_user_model(); User.objects.create_superuser('userUsername', 'userEmail', 'userPassword')" | python manage.py shell
Dieses Skript importiert zuerst eine Methode, get_user_model
, um das von Django verwendete Benutzermodell zu erhalten.
Diese Methode ruft eine Referenz auf das eigentliche Benutzermodellobjekt ab und speichert sie in der Variablen User
.
Mit dieser Referenz erstellt es dann mit create_superuser()
einen neuen Superuser. Diese Methode akzeptiert einen Benutzernamen, eine E-Mail und ein Kennwort.
Beachten Sie, dass diese Felder für das Standardbenutzermodell von Django gültig sind. Wenn Sie ein benutzerdefiniertes Benutzermodell verwenden, ändern sich die Felder zum Erstellen eines Benutzers oder Superusers entsprechend.
Superuser mit einem Python-Skript erstellen
Da Django-Modelle überall im Django-Projekt zugänglich sind, können wir sie verwenden, um Benutzer und Superuser zu erstellen. Wir können eine Funktion erstellen, die einige Eingaben akzeptiert und dann einen Superuser erstellt, der sie für diese Aufgabe verwendet.
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
Diese Funktion hat zwei obligatorische Argumente, nämlich Benutzername und Passwort, und drei optionale Argumente. Es erstellt einen Superuser basierend auf den übergebenen Werten und gibt eine Referenz auf den neu gebildeten Superuser zurück.