Automatisieren Sie den Befehl createsuperuser in Django

Vaibhav Vaibhav 29 Juni 2021
  1. Superuser mit der Django Shell erstellen
  2. Superuser mit einem Python-Skript erstellen
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.

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.

Verwandter Artikel - Django User