Créer un super utilisateur Django sans prompt
mercredi 20 novembre 2013 à 10:23Automatiser le déploiement d’un projet Django passe par un syncdb
sans prompt, et donc pas de création de superutilisateur :
./manage.py syncdb --noinput
Vous pouvez bien entendu toujours en créer un plus tard, avec :
./manage.py createsuperuser --username=vous --email=votre_mail
Mais il va vous prompter pour saisir le mot de passe ou alors mettre un mot de passe inutilisable automatiquement, ça ne résout pas votre problème. Une astuce consiste à le créer avec un code Python et à piper ce code dans un shell :
echo "from django.contrib.auth.models import User; User.objects.filter(username='vous').count() or User.objects.create_superuser('vous', votre_email', 'mot_de_passe')" | ./manage.py shell
Personnellement je colle ça dans une tache fabric. Parfois on peut même générer le mot de passe aléatoirement avec un uuid qui est printé localement.