Używam Django (wersja 1.3) i zapomniałem nazwy użytkownika i hasła administratora. Jak zresetować oba?
Czy jest możliwe, aby zwykły użytkownik stał się administratorem, a następnie usunął status administratora?
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:źródło
user.is_staff = True
Możesz spróbować za pomocą konsoli:
następnie użyj następującego skryptu w powłoce
wyświetli listę wszystkich superużytkowników w systemie. jeśli rozpoznasz swoją nazwę użytkownika z listy:
i ustawiłeś nowe hasło (:
źródło
User.objects.filter(is_superuser=True)
pip install django-extensions
, dodaj goinstalled apps
i uruchom./manage.py shell_plus
.User
Klasa będzie dostępna i możnapassword-change
.Możesz utworzyć nowego superużytkownika za pomocą
createsuperuser
polecenia.źródło
To bardzo dobre pytanie.
python manage.py changepassword nazwa_użytkownika
Przykład: -
źródło
najpierw należy uruchomić nową konfigurację,
python manage.py createsuperuser
aby utworzyć użytkownika. Wygląda na to, że nie ma domyślnego hasła do nazwy użytkownika, aby zalogować się do administratora.źródło
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.
W tym przypadku używam Django 1.9
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.
źródło
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 środowiskuMożliwe, że źle odpowiedziałeś na pytanie konfiguracyjne i masz zero pracowników. W takim przypadku przejdź do postgres:
Aby to naprawić, edytuj bezpośrednio:
źródło
Dwa sposoby na to:
Polecenie
changepassword
zarządzania :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:
Powinno to wywołać wiersz poleceń powłoki w następujący sposób:
Następnie chcesz następujące:
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łasnychUser
modeli niestandardowych . Użyciefrom django.contrib.auth.models import User
wtedyUser.objects.get(username='username')
może zgłosić następujący błąd:źródło
Jeśli zapomniałeś utworzyć użytkownika admin, najpierw zbuduj go z
createsuperuser
komendą,manage.py
a następnie zmień hasło.źródło
Możesz spróbować:
1.Zmień hasło administratora bez konsoli
2.Zmień hasło administratora w konsoli
źródło
W przypadku, gdy nie znasz nazw użytkowników utworzonych tutaj. Możesz zdobyć użytkowników zgodnie z opisem @FallenAngel powyżej.
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
źródło
jeśli zapomnisz administratora, musisz utworzyć nowego użytkownika za pomocą
a dla hasła dostępna jest komenda CLI
changepassword
dla django do zmiany hasła użytkownikaLUB
LUB Uruchom ten kod w Django env
źródło
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 danychauth_user
i szukam tej nazwy użytkownika, aby upewnić się, że jejis_staff
flaga jest ustawiona na1
. To w końcu pozwoliło mi zalogować się naadmin
stronie.źródło
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.
źródło
python manage.py changepassword nazwa użytkownika
źródło
posługiwać się
następnie spójrz na koniec, znajdziesz nazwę użytkownika
źródło
Najlepszym sposobem jest po prostu pójść do terminala i wpisać
i ponownie wprowadź inne hasło i nazwę użytkownika, ale w większości przypadków stracisz część swojego profilu, który wcześniej utworzyłeś.
źródło
Myślę, że lepszy sposób w wierszu poleceń
źródło
To bardzo proste, wystarczy wpisać to polecenie w wierszu polecenia yout
python manage.py changepassword twoja nazwa użytkownika
źródło
Innym sposobem na uzyskanie nazwy użytkownika (i większości informacji) jest bezpośredni dostęp do bazy danych i odczytanie informacji z tabel.
źródło