Le blog d'un informaticien passionné de partage, d'échanges et surtout, pas si zéro que ça.
Tout utilisateur de Django connait bien la commande python manage.py, qu’on lance pour collecter les fichiers statiques, appliquer des migrations ou créer un super utilisateur. Tiens ! en parlant de ça, j’étais face à un problème : je devais créer un super utilisateur mais le projet se trouve à l’intérieur d’un conteneur, donc pas d’accès au shell, donc pas possible de rentrer les informations.
Heureusement, Django est un projet bien conçu et il est possible de créer nous-mêmes nos propres commandes. Il faut simplement respecter certaines procédures (merci à ce blog).
Créer un package (donc avec un __init__.py) d’un certain nom (disons shell) et l’ajouter aux INSTALLED_APPS du projet.
Dans ce premier package, créer un deuxième package appelé management.
Dans ce deuxième package, créer un troisième du nom de commands.
Dans ce troisième package, créer autant de fichiers que l’on veut, donc les noms deviendront des commandes utilisables avec python manage.py.
Voilà un tree pour bien comprendre, avec la commande pour créer le super utilisateur sans input.
Et voici la commande qui me permet de créer mon super utilisateur et qui se lance aussi simplement que ça : python manage.py createsu