Opgelost: django hoe superuser aan te maken als deze niet bestaat bij migratie

Als er geen superuser bestaat op de migratie, zal Django er een aanmaken.

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>

De eerste regel creëert een functie die een superuser zal creëren als die nog niet bestaat.
De tweede regel haalt het gebruikersmodel op uit de 'auth'-app.
De derde regel controleert of er een gebruiker met de gebruikersnaam 'admin' bestaat. Als niet,
de vierde regel maakt een superuser aan met de gebruikersnaam 'admin', het e-mailadres 'admin@example.com' en het wachtwoord 'password'.
De vijfde en zesde regel creëren een migratieklasse en specificeren dat deze afhankelijk is van de migratie '0001_initial' in de app 'myapp'.
De zevende regel geeft aan dat de migratie de functie 'create_superuser' moet uitvoeren.

Wat is een supergebruiker

Een superuser is een gebruiker met beheerdersrechten op een Django-site. Ze kunnen bijvoorbeeld modellen, weergaven en toepassingen maken en beheren.

Gerelateerde berichten:

Laat een bericht achter