Gelöst: Django, wie man einen Superuser erstellt, wenn er bei der Migration nicht existiert

Wenn bei der Migration kein Superuser vorhanden ist, erstellt Django einen.

I have a migration that creates a superuser if it does not exist. 
<code>def create_superuser(apps, schema_editor):
    User = apps.get_model('auth', 'User')

    if not User.objects.filter(username='admin').exists():
        User.objects.create_superuser('admin', 'admin@example.com', 'password')


class Migration(migrations.Migration):

    dependencies = [
        ('myapp', '0001_initial'),
    ]

    operations = [
        migrations.RunPython(create_superuser),
    ] 
</code>

Die erste Zeile erstellt eine Funktion, die einen Superuser erstellt, falls noch keiner vorhanden ist.
Die zweite Zeile ruft das Benutzermodell von der App „auth“ ab.
Die dritte Zeile prüft, ob ein Benutzer mit dem Benutzernamen „admin“ existiert. Wenn nicht,
Die vierte Zeile erstellt einen Superuser mit dem Benutzernamen „admin“, der E-Mail-Adresse „admin@example.com“ und dem Passwort „password“.
Die fünfte und sechste Zeile erstellen eine Migrationsklasse und geben an, dass sie von der Migration „0001_initial“ in der App „myapp“ abhängt.
Die siebte Zeile gibt an, dass die Migration die Funktion „create_superuser“ ausführen soll.

Was ist ein Superuser

Ein Superuser ist ein Benutzer mit Administratorrechten auf einer Django-Site. Sie können beispielsweise Modelle, Ansichten und Anwendungen erstellen und verwalten.

Zusammenhängende Posts:

Hinterlasse einen Kommentar