Comment réinitialiser le mot de passe administrateur Django?
14 réponses
- {[1] } va créer un autre superutilisateur, vous pourrez vous connecter à admin et rememder votre nom d'utilisateur.
- Oui, pourquoi pas.
Pour donner à un utilisateur normal des privilèges, ouvrez un shell avec python manage.py shell
et essayez:
from django.contrib.auth.models import User
user = User.objects.get(username='normaluser')
user.is_superuser = True
user.save()
Vous pouvez essayer via la console:
python manage.py shell
Ensuite, utilisez le script suivant dans shell
from django.contrib.auth.models import User
User.objects.filter(is_superuser=True)
Vous liste tous les super utilisateurs sur le système. si vous reconnaissez votre nom d'utilisateur dans la liste:
usr = User.objects.get(username='your username')
usr.set_password('raw password')
usr.save()
Et vous définissez un nouveau mot de passe (:
, Vous pouvez créer un nouveau super-utilisateur avec createsuperuser
commande.
C'est une très bonne question.
Python manage.py changepassword user_name
Exemple :-
python manage.py changepassword mickey
Nouvelle configuration devrait - exécutez d'abord python manage.py createsuperuser
pour créer un utilisateur. Il semble qu'il n'y ait pas de mot de passe de nom d'utilisateur par défaut pour se connecter à admin.
Vous avez peut-être également mal répondu à une question d'installation et n'avez aucun membre du personnel. Dans ce cas, dirigez-vous vers postgres:
obvioustest=# \c [yourdatabasename]
obvioustest=# \x
obvioustest=# select * from auth_user;
-[ RECORD 1 ]+-------------
id | 1
is_superuser | f
is_staff | f
...
Pour corriger, modifier directement:
update auth_user set is_staff='true' where id=1;
L'une des meilleures façons de récupérer le nom d'utilisateur et le mot de passe est de les afficher et de les mettre à jour. Le modèle utilisateur fournit un moyen idéal de le faire.
Dans ce cas, J'utilise Django 1.9
- accédez à votre répertoire racine i,E. où vous "manage.py" le fichier est situé à l'aide de votre console ou d'une autre application telle que Git.
- récupérer le shell Python en utilisant la commande "python manage.py shell".
- importez le modèle Utilisateur en tapant la commande suivante "de django.contrib.auth.modèles importer Utilisateur "
- Obtenez tous les utilisateurs en tapant la commande suivante "utilisateurs = Utilisateur.objet.tous () "
Imprimer une liste des utilisateurs Pour les utilisateurs de Python 2, Utilisez la commande "Imprimer les utilisateurs" Pour les utilisateurs de Python 3, Utilisez la commande "print (users)" Le premier utilisateur est généralement l'administrateur.
-
Sélectionnez l'utilisateur que vous souhaitez modifier son mot de passe par exemple
"user = users[0]"
-
Définir le mot de passe
user.set_password('name_of_the_new_password_for_user_selected')
-
Enregistrer le nouveau mot de passe
"user.save()"
Démarrez le serveur et connectez-vous en utilisant le nom d'utilisateur et le mot de passe mis à jour.
Si vous avez oublié de créer un utilisateur admin, créez-en un avec la commande createsuperuser
sur manage.py
, puis changez le mot de passe.
, Vous pouvez essayer ceci:
1.Changer le mot de passe du superutilisateur sans console
python manage.py changepassword <username>
2.Changer le mot de passe du superutilisateur via la console
Dans le cas où vous ne connaissez pas les noms d'utilisateur créés ici. Vous pouvez obtenir les utilisateurs comme décrit par @FallenAngel ci-dessus.
python manage.py shell
from django.contrib.auth.models import User
usrs = User.objects.filter(is_superuser=True)
#identify the user
your_user = usrs.filter(username="yourusername")[0]
#youruser = usrs.get(username="yourusername")
#then set the password
Cependant, dans le cas où vous avez créé votre modèle d'utilisateur indépendant. Un cas simple est lorsque vous souhaitez utiliser l'email comme nom d'utilisateur au lieu du nom d'utilisateur par défaut. Dans ce cas, votre modèle utilisateur vit quelque part comme your_accounts_app.modèles alors la solution ci-dessus ne fonctionnera pas. Dans ce cas, vous pouvez utiliser la méthode get_user_model
from django.contrib.auth import get_user_model
super_users = get_user_model().objects.filter(is_superuser=True)
#proceed to get identify your user
# and set their user password
Une autre chose à noter est de définir le statut de votre Utilisateur is_staff
comme actif. Au moins, c'est ce qui fait que ça marche pour moi. Pour plus de détails, j'ai créé un autre superuser
comme les gens l'ont expliqué ci-dessus. Ensuite, je vais à la table de base de données auth_user
et recherche ce nom d'utilisateur pour m'assurer que son drapeau is_staff
est défini sur 1
. Cela m'a finalement permis de me connecter au site admin
.
Créez un nouveau superutilisateur avec la commande "python manage.py createsuperuser". Connectez - vous en tant que nouveau super utilisateur. Cliquez sur "utilisateurs" lien. Ensuite, cliquez sur l'utilisateur que vous souhaitez supprimer. cliquez sur supprimer l'utilisateur à la fin de la page du formulaire.
Remarque - le processus ci-dessus apportera des modifications aux journaux d'activité effectués par cet utilisateur particulier.