Réponses:
python manage.py changepassword <user_name>
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:
from django.contrib.auth.models import User
user = User.objects.get(username='normaluser')
user.is_superuser = True
user.save()
user.is_staff = True
Vous pouvez essayer via la console:
python manage.py shell
puis utilisez le script suivant dans le shell
from django.contrib.auth.models import User
User.objects.filter(is_superuser=True)
vous répertoriera tous les super utilisateurs du 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 (:
User.objects.filter(is_superuser=True)
pip install django-extensions
, ajoutez-le installed apps
et exécutez ./manage.py shell_plus
. Le User
cours sera disponible et vous le pouvez password-change
.
Vous pouvez créer un nouveau superutilisateur avec la createsuperuser
commande.
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.
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.
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:
obvioustest=# \c [yourdatabasename]
obvioustest=# \x
obvioustest=# select * from auth_user;
-[ RECORD 1 ]+-------------
id | 1
is_superuser | f
is_staff | f
...
Pour corriger, modifiez directement:
update auth_user set is_staff='true' where id=1;
Deux façons de procéder:
La changepassword
commande de gestion :
(env) $ python manage.py changepassword <username>
Ou (qui développe quelques réponses, mais fonctionne pour tout modèle utilisateur étendu) en utilisant le shell django-admin comme suit:
(env) $ python manage.py shell
Cela devrait faire apparaître l'invite de commande du shell comme suit:
Python 3.7.2 (default, Mar 27 2019, 08:44:46)
[GCC 6.3.0 20170516] on linux
Type "help", "copyright", "credits" or "license" for more information.
(InteractiveConsole)
>>>
Ensuite, vous voudriez ce qui suit:
>>> from django.contrib.auth import get_user_model
>>> User = get_user_model()
>>> user = User.objects.get(username='admin@hug.com')
>>> user.set_password('new password')
>>> user.save()
>>> exit()
NB Pourquoi ai-je répondu à cette question avec cette réponse?
Parce que, comme mentionné, User = get_user_model()
fonctionnera pour vos propres User
modèles personnalisés . L'utilisation de from django.contrib.auth.models import User
puis User.objects.get(username='username')
peut générer l'erreur suivante:
AttributeError: Manager isn't available; 'auth.User' has been swapped for 'users.User'
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.
Vous pouvez essayer ceci:
1.Modifier le mot de passe du superutilisateur sans console
python manage.py changepassword <username>
2.Modifier le mot de passe du superutilisateur via la console
Si 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 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
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
si vous oubliez votre administrateur, vous devez créer un nouvel utilisateur en utilisant
python manage.py createsuperuser <username>
et pour le mot de passe, il y a une commande CLI changepassword
pour django pour changer le mot de passe de l'utilisateur
python manage.py changepassword <username>
OU
django-admin changepassword <username>
OU Exécutez ce code dans Django env
from django.contrib.auth.models import User
u = User.objects.get(username='john')
u.set_password('new password')
u.save()
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 autre superuser
comme les gens l'ont expliqué ci-dessus. Ensuite, je vais dans la table de base de données auth_user
et recherche ce nom d'utilisateur pour m'assurer que son is_staff
indicateur est défini sur 1
. Cela m'a finalement permis de me connecter au admin
site.
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.
python manage.py changepassword nom d'utilisateur
utilisation
python manage.py dumpdata
puis regardez à la fin vous trouverez le nom d'utilisateur
Je pense que la meilleure façon Sur la ligne de commande
python manage.py crée un superutilisateur