Risposte:
python manage.py changepassword <user_name>
manage.py createsuperuser
per creare un secondo superutente, quindi visualizzare l'elenco degli utenti per trovare quello originale. Quindi accedi come quello originale ed elimina il nuovo superutente.
python manage.py createsuperuser
creerà un altro superutente, sarai in grado di accedere ad admin e ricordare il tuo nome utente.Per dare i normali privilegi di utente, apri una shell con python manage.py shell
e prova:
from django.contrib.auth.models import User
user = User.objects.get(username='normaluser')
user.is_superuser = True
user.save()
user.is_staff = True
Puoi provare tramite la console:
python manage.py shell
quindi utilizzare il seguente script nella shell
from django.contrib.auth.models import User
User.objects.filter(is_superuser=True)
elencherà tutti i super utenti sul sistema. se riconosci il tuo nome utente dall'elenco:
usr = User.objects.get(username='your username')
usr.set_password('raw password')
usr.save()
e imposti una nuova password (:
User.objects.filter(is_superuser=True)
pip install django-extensions
, aggiungilo installed apps
ed eseguilo ./manage.py shell_plus
. La User
lezione sarà disponibile e tu potrai password-change
.
È possibile creare un nuovo superutente con createsuperuser
comando.
Uno dei modi migliori per recuperare il nome utente e la password è visualizzarli e aggiornarli. Il modello utente fornisce un modo perfetto per farlo.
Stampa un elenco degli utenti Per gli utenti di Python 2 utilizzare il comando "stampa utenti" Per gli utenti di Python 3 utilizzare il comando "stampa (utenti)" Il primo utente è generalmente l'amministratore.
Seleziona l'utente che desideri modificare la password, ad es
"user = users[0]"
Imposta la password
user.set_password('name_of_the_new_password_for_user_selected')
Salva la nuova password
"user.save()"
Avviare il server e accedere utilizzando il nome utente e la password aggiornata.
manage.py changepassword
è che non sei limitato a quali password puoi o non puoi usare - non più troppo simili a crap nome utente. (Questo è nel mio ambiente di sviluppo. Non sto sostenendo password più deboli. Dovresti sempre usare password forti nel prod.)
Potresti anche aver risposto a una domanda di installazione errata e avere zero membri dello staff. Nel qual caso vai a postgres:
obvioustest=# \c [yourdatabasename]
obvioustest=# \x
obvioustest=# select * from auth_user;
-[ RECORD 1 ]+-------------
id | 1
is_superuser | f
is_staff | f
...
Per risolvere, modifica direttamente:
update auth_user set is_staff='true' where id=1;
Due modi per farlo:
Il changepassword
comando di gestione :
(env) $ python manage.py changepassword <username>
Oppure (che si espande su alcune risposte, ma funziona per qualsiasi modello utente esteso) usando la shell django-admin come segue:
(env) $ python manage.py shell
Questo dovrebbe far apparire il prompt dei comandi della shell come segue:
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)
>>>
Quindi vorresti quanto segue:
>>> 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 Perché ho risposto a questa domanda con questa risposta?
Perché, come detto, User = get_user_model()
funzionerà per i tuoi User
modelli personalizzati . L'utilizzo di from django.contrib.auth.models import User
allora User.objects.get(username='username')
può generare il seguente errore:
AttributeError: Manager isn't available; 'auth.User' has been swapped for 'users.User'
Se hai dimenticato di creare un utente amministratore, creane uno con il createsuperuser
comando attivo, manage.py
quindi modifica la password.
Puoi provare questo:
1.Cambia la password del Superutente senza console
python manage.py changepassword <username>
2. Cambiare la password del superutente tramite la console
Nel caso in cui non si conoscano i nomi utente creati qui. Puoi ottenere gli utenti come descritto da @FallenAngel sopra.
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
Tuttavia, nel caso in cui sia stato creato il modello utente indipendente. Un semplice caso è quando si desidera utilizzare l'e-mail come nome utente anziché come nome utente predefinito. Nel qual caso il tuo modello utente vive da qualche parte come your_accounts_app.models, la soluzione sopra non funzionerà. In questo caso puoi invece usare il metodo 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
se si dimentica l'amministratore, è necessario creare un nuovo utente utilizzando
python manage.py createsuperuser <username>
e per la password c'è il comando CLI changepassword
per django per cambiare la password dell'utente
python manage.py changepassword <username>
O
django-admin changepassword <username>
OPPURE Esegui questo codice in Django env
from django.contrib.auth.models import User
u = User.objects.get(username='john')
u.set_password('new password')
u.save()
Un'altra cosa che vale la pena notare è impostare lo stato dell'utente is_staff
come attivo. Almeno, questo è ciò che fa funzionare per me. Per maggiori dettagli, ne ho creato un altro superuser
come spiegato in precedenza. Quindi vado alla tabella del database auth_user
e cerco quel nome utente per assicurarmi che il suo is_staff
flag sia impostato su 1
. Che finalmente mi ha permesso di accedere al admin
sito.
Crea un nuovo superutente con il comando "python manage.py createuperuser". Accedi come nuovo superutente. Fai clic sul link "utenti". Quindi fare clic sull'utente che si desidera eliminare. fai clic su elimina utente alla fine della pagina del modulo.
Nota: il processo sopra descritto apporta modifiche ai registri delle attività eseguiti da quel particolare utente.
python manage.py nome utente changepassword
Penso, il modo migliore alla riga di comando
python manage.py creauperuser