Odpowiedzi:
python manage.py changepassword <user_name>
manage.py createsuperuser
aby utworzyć drugiego administratora, a następnie przejrzeć listę użytkowników, aby znaleźć oryginalną. Następnie zaloguj się jako oryginalny i usuń nowego administratora.
python manage.py createsuperuser
utworzy kolejnego superużytkownika, będziesz mógł zalogować się do administratora i zapamiętać swoją nazwę użytkownika.Aby nadać zwykłym użytkownikom uprawnienia, otwórz powłokę za pomocą python manage.py shell
i spróbuj:
from django.contrib.auth.models import User
user = User.objects.get(username='normaluser')
user.is_superuser = True
user.save()
user.is_staff = True
Możesz spróbować za pomocą konsoli:
python manage.py shell
następnie użyj następującego skryptu w powłoce
from django.contrib.auth.models import User
User.objects.filter(is_superuser=True)
wyświetli listę wszystkich superużytkowników w systemie. jeśli rozpoznasz swoją nazwę użytkownika z listy:
usr = User.objects.get(username='your username')
usr.set_password('raw password')
usr.save()
i ustawiłeś nowe hasło (:
User.objects.filter(is_superuser=True)
pip install django-extensions
, dodaj go installed apps
i uruchom ./manage.py shell_plus
. User
Klasa będzie dostępna i można password-change
.
Możesz utworzyć nowego superużytkownika za pomocą createsuperuser
polecenia.
Jednym z najlepszych sposobów na odzyskanie nazwy użytkownika i hasła jest ich przeglądanie i aktualizacja. Model użytkownika zapewnia doskonały sposób na to.
Wydrukuj listę użytkowników. Dla użytkowników Python 2 użyj polecenia „print users”. Dla użytkowników Python 3 użyj polecenia „print (users)”. Pierwszym użytkownikiem jest zazwyczaj administrator.
Wybierz użytkownika, którego chcesz zmienić hasło, np
"user = users[0]"
Ustaw hasło
user.set_password('name_of_the_new_password_for_user_selected')
Zapisz nowe hasło
"user.save()"
Uruchom serwer i zaloguj się przy użyciu nazwy użytkownika i zaktualizowanego hasła.
manage.py changepassword
jest to, że nie jesteś ograniczony do haseł, których możesz używać, a których nie możesz używać - nie jest już zbyt podobny do bzdur z nazwami użytkowników. (To jest w moim środowisku
Możliwe, że źle odpowiedziałeś na pytanie konfiguracyjne i masz zero pracowników. W takim przypadku przejdź do postgres:
obvioustest=# \c [yourdatabasename]
obvioustest=# \x
obvioustest=# select * from auth_user;
-[ RECORD 1 ]+-------------
id | 1
is_superuser | f
is_staff | f
...
Aby to naprawić, edytuj bezpośrednio:
update auth_user set is_staff='true' where id=1;
Dwa sposoby na to:
Polecenie changepassword
zarządzania :
(env) $ python manage.py changepassword <username>
Lub (który rozwija się po kilku odpowiedziach, ale działa dla dowolnego rozszerzonego modelu użytkownika) przy użyciu powłoki django-admin w następujący sposób:
(env) $ python manage.py shell
Powinno to wywołać wiersz poleceń powłoki w następujący sposób:
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)
>>>
Następnie chcesz następujące:
>>> 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 Dlaczego odpowiedziałem na to pytanie za pomocą tej odpowiedzi?
Ponieważ, jak wspomniano, User = get_user_model()
będzie działać dla twoich własnych User
modeli niestandardowych . Użycie from django.contrib.auth.models import User
wtedy User.objects.get(username='username')
może zgłosić następujący błąd:
AttributeError: Manager isn't available; 'auth.User' has been swapped for 'users.User'
Jeśli zapomniałeś utworzyć użytkownika admin, najpierw zbuduj go z createsuperuser
komendą, manage.py
a następnie zmień hasło.
Możesz spróbować:
1.Zmień hasło administratora bez konsoli
python manage.py changepassword <username>
2.Zmień hasło administratora w konsoli
W przypadku, gdy nie znasz nazw użytkowników utworzonych tutaj. Możesz zdobyć użytkowników zgodnie z opisem @FallenAngel powyżej.
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
Jednak w przypadku utworzenia niezależnego modelu użytkownika. Prostym przypadkiem jest użycie e-maila jako nazwy użytkownika zamiast domyślnej nazwy użytkownika. W takim przypadku Twój model użytkownika mieszka gdzieś, np. Twoje_konta_aplikacje.modele, to powyższe rozwiązanie nie będzie działać. W takim przypadku możesz zamiast tego użyć metody 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
jeśli zapomnisz administratora, musisz utworzyć nowego użytkownika za pomocą
python manage.py createsuperuser <username>
a dla hasła dostępna jest komenda CLI changepassword
dla django do zmiany hasła użytkownika
python manage.py changepassword <username>
LUB
django-admin changepassword <username>
LUB Uruchom ten kod w Django env
from django.contrib.auth.models import User
u = User.objects.get(username='john')
u.set_password('new password')
u.save()
Kolejną rzeczą, na którą warto zwrócić uwagę, jest ustawienie statusu użytkownika is_staff
jako aktywnego. Przynajmniej dlatego to działa dla mnie. Aby uzyskać więcej szczegółów, stworzyłem inny, superuser
jak ludzie wyjaśnili powyżej. Następnie przechodzę do tabeli bazy danych auth_user
i szukam tej nazwy użytkownika, aby upewnić się, że jej is_staff
flaga jest ustawiona na 1
. To w końcu pozwoliło mi zalogować się na admin
stronie.
Utwórz nowego superużytkownika za pomocą polecenia „python manage.py opensuperuser”. Zaloguj się jako nowy superużytkownik. Kliknij link „użytkownicy”. Następnie kliknij użytkownika, którego chcesz usunąć. kliknij Usuń użytkownika na końcu strony formularza.
Uwaga - powyższy proces spowoduje zmiany w dziennikach aktywności wykonanych przez tego konkretnego użytkownika.
python manage.py changepassword nazwa użytkownika
posługiwać się
python manage.py dumpdata
następnie spójrz na koniec, znajdziesz nazwę użytkownika
Myślę, że lepszy sposób w wierszu poleceń
python manage.py tworzy superużytkownika