J'utilise Django (version 1.3) et j'ai oublié le nom d'utilisateur et le mot de passe administrateur. Comment réinitialiser les deux?
Et est-il possible de transformer un utilisateur normal en administrateur, puis de supprimer le statut d'administrateur?
manage.py createsuperuser
pour créer un deuxième superutilisateur, puis afficher la liste des utilisateurs pour trouver l'original. Connectez-vous ensuite en tant qu'original et supprimez le nouveau superutilisateur.python manage.py createsuperuser
créera un autre superutilisateur, vous pourrez vous connecter à l'administrateur et mémoriser votre nom d'utilisateur.Pour donner un privilège d'utilisateur normal, ouvrez un shell avec
python manage.py shell
et essayez:la source
user.is_staff = True
Vous pouvez essayer via la console:
puis utilisez le script suivant dans le shell
vous répertoriera tous les super utilisateurs du système. si vous reconnaissez votre nom d'utilisateur dans la liste:
et vous définissez un nouveau mot de passe (:
la source
User.objects.filter(is_superuser=True)
pip install django-extensions
, ajoutez-leinstalled apps
et exécutez./manage.py shell_plus
. LeUser
cours sera disponible et vous le pouvezpassword-change
.Vous pouvez créer un nouveau superutilisateur avec la
createsuperuser
commande.la source
C'est une très bonne question.
python manage.py changepassword nom_utilisateur
Exemple :-
la source
la nouvelle configuration doit d' abord s'exécuter
python manage.py createsuperuser
pour créer un utilisateur. Il semble qu'il n'y ait pas de mot de passe par défaut pour se connecter à l'administrateur.la source
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 parfait de le faire.
Dans ce cas, j'utilise Django 1.9
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 "imprimer (utilisateurs)" Le premier utilisateur est généralement l'administrateur.
Sélectionnez l'utilisateur dont vous souhaitez modifier le mot de passe, par exemple
"user = users[0]"
Définissez le mot de passe
user.set_password('name_of_the_new_password_for_user_selected')
Enregistrez 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.
la source
manage.py changepassword
est que vous n'êtes pas limité aux mots de passe que vous pouvez ou ne pouvez pas utiliser - plus trop similaire à la merde de nom d'utilisateur. (C'est dans mon environnement de développement. Je ne préconise pas des mots de passe plus faibles. Vous devriez toujours utiliser des mots de passe forts dans prod.)Vous pouvez également avoir mal répondu à une question de configuration et n'avoir aucun membre du personnel. Dans ce cas, rendez-vous aux postgres:
Pour corriger, modifiez directement:
la source
Deux façons de procéder:
La
changepassword
commande de gestion :Ou (qui développe quelques réponses, mais fonctionne pour tout modèle utilisateur étendu) en utilisant le shell django-admin comme suit:
Cela devrait faire apparaître l'invite de commande du shell comme suit:
Ensuite, vous voudriez ce qui suit:
NB Pourquoi ai-je répondu à cette question avec cette réponse?
Parce que, comme mentionné,
User = get_user_model()
fonctionnera pour vos propresUser
modèles personnalisés . L'utilisation defrom django.contrib.auth.models import User
puisUser.objects.get(username='username')
peut générer l'erreur suivante:la source
Si vous avez oublié de créer un administrateur, commencez par en créer un avec la
createsuperuser
commande,manage.py
puis modifiez le mot de passe.la source
Vous pouvez essayer ceci:
1.Modifier le mot de passe du superutilisateur sans console
2.Modifier le mot de passe du superutilisateur via la console
la source
Si vous ne connaissez pas les noms d'utilisateur créés ici. Vous pouvez obtenir les utilisateurs comme décrit par @FallenAngel ci-dessus.
Cependant dans le cas où vous avez créé votre modèle d'utilisateur indépendant. Un cas simple est lorsque vous souhaitez utiliser le courrier électronique 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.models, alors la solution ci-dessus ne fonctionnera pas. Dans ce cas, vous pouvez utiliser à la place la méthode get_user_model
la source
si vous oubliez votre administrateur, vous devez créer un nouvel utilisateur en utilisant
et pour le mot de passe, il y a une commande CLI
changepassword
pour django pour changer le mot de passe de l'utilisateurOU
OU Exécutez ce code dans Django env
la source
Une autre chose à noter est de définir le statut de votre utilisateur
is_staff
comme actif. Du moins, c'est ce qui fait que ça marche pour moi. Pour plus de détails, j'en ai créé un autresuperuser
comme les gens l'ont expliqué ci-dessus. Ensuite, je vais dans la table de base de donnéesauth_user
et recherche ce nom d'utilisateur pour m'assurer que sonis_staff
indicateur est défini sur1
. Cela m'a finalement permis de me connecter auadmin
site.la source
Créez un nouveau superutilisateur avec la commande "python manage.py createuperuser". Connectez-vous en tant que nouveau super utilisateur. Cliquez sur le lien "utilisateurs". Cliquez ensuite 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.
la source
python manage.py changepassword nom d'utilisateur
la source
utilisation
puis regardez à la fin vous trouverez le nom d'utilisateur
la source
La meilleure façon est de vous rendre sur votre terminal et de taper
et insérez à nouveau un autre mot de passe et nom d'utilisateur, mais vous perdrez une partie de votre profil que vous avez créé auparavant dans la plupart des cas.
la source
Je pense que la meilleure façon Sur la ligne de commande
la source
C'est très simple, il suffit de taper cette commande en ligne de commande
python manage.py changepassword votre nom d'utilisateur
la source
Une autre façon d'obtenir le nom d'utilisateur (et la plupart des informations) consiste à accéder directement à la base de données et à lire les informations des tables.
la source