Résolu : django comment créer un superutilisateur s'il n'existe pas lors de la migration

Si un superutilisateur n'existe pas sur la migration, Django en créera un.

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>

La première ligne crée une fonction qui créera un superutilisateur s'il n'en existe pas déjà.
La deuxième ligne récupère le modèle User de l'application 'auth'.
La troisième ligne vérifie si un utilisateur avec le nom d'utilisateur 'admin' existe. Sinon,
la quatrième ligne crée un superutilisateur avec le nom d'utilisateur 'admin', l'adresse e-mail 'admin@example.com' et le mot de passe 'password'.
Les cinquième et sixième lignes créent une classe de migration et précisent qu'elle dépend de la migration '0001_initial' dans l'application 'myapp'.
La septième ligne spécifie que la migration doit exécuter la fonction 'create_superuser'.

Qu'est-ce qu'un superutilisateur

Un superutilisateur est un utilisateur disposant de privilèges administratifs sur un site Django. Ils peuvent par exemple créer et gérer des modèles, des vues et des applications.

Articles connexes

Laisser un commentaire