Django : comment changer le mot de passe d'un utilisateur en ligne de commande

Mathias WOLFF published on
1 min, 137 words

Categories: Programmation

Comment changer le mot de passe d'un utilisateur dans un framework Django en ligne de commande ?

En fait c'est assez simple.

Il faut ouvrir un shell python, importer le modèle User, récupérer l'objet correspondant à votre utilisateur, modifier l'attribut "password" et sauver l'objet. Ne pas oublier d'activer l'environnement virtuel si nécessaire.

Voici le code correspondant à la description (n'oubliez pas de changer l'attribut "username" afin qu'il corresponde à votre utilisateur et le "password" bien sûr) :

# Lancement du shell
python manage.py shell

# Le prompt change !!! >>>

# Chargement du modèle User
from django.contrib.auth.models import User

# Récupération de l'objet correspondant à notre utilisateur root
u = User.objects.get(username='root')

# Changement du mot de passe
u.set_password('mon_mot_de_passe_res_complique')

# Sauvegarde
u.save()

# On quitte le shell
exit()

Manipuler les objets Django en CLI via le shell n'est pas bien compliqué, mais terriblement utile et puissant.