632 Stimmen

Wie setze ich das Django-Admin-Passwort zurück?

Ich benutze Django (Version 1.3) und habe sowohl den Admin-Benutzernamen als auch das Passwort vergessen. Wie kann ich beides zurücksetzen?

Ist es möglich, einen normalen Benutzer zum Admin zu machen und dann den Admin-Status zu entfernen?

0 Stimmen

Bitte stellen Sie keine zwei verschiedenen Fragen in einem Beitrag.

18voto

anand24 Punkte 311

Dies ist eine sehr gute Frage.

python manage.py changepassword Benutzername

Beispiel :-

python manage.py changepassword Micky

15voto

Eine der besten Möglichkeiten, um den Benutzernamen und das Passwort abzurufen, besteht darin, sie anzuzeigen und zu aktualisieren. Das Benutzermodell bietet eine perfekte Möglichkeit, dies zu tun.

In diesem Fall verwende ich Django 1.9

  1. Navigieren Sie zu Ihrem Stammverzeichnis, d.h. zu dem Ort, an dem sich Ihre "manage.py"-Datei befindet, mit Ihrer Konsole oder einer anderen Anwendung wie Git.

  2. Rufen Sie die Python-Shell auf, indem Sie den Befehl "python manage.py shell" verwenden.

  3. Importieren Sie das Benutzermodell, indem Sie den folgenden Befehl eingeben "from django.contrib.auth.models import User"

  4. Rufen Sie alle Benutzer ab, indem Sie den folgenden Befehl eingeben "users = User.objects.all()"

  5. Drucken Sie eine Liste der Benutzer aus Für Python 2 Benutzer den Befehl "print users" verwenden Für Python 3 Benutzer den Befehl "print(users)" verwenden Der erste Benutzer ist normalerweise der Administrator.

  6. Wählen Sie den Benutzer aus, dessen Passwort Sie ändern möchten, z. B.

    "user = users[0]"

  7. Setzen Sie das Passwort

    user.set_password('Name_des_neuen_Passworts_für_den_ausgewählten_Benutzer')

  8. Speichern Sie das neue Passwort

    "user.save()"

Starten Sie den Server und melden Sie sich mit dem Benutzernamen und dem aktualisierten Passwort an.

13voto

Max Punkte 1468

neues Setup sollte zuerst ausführen python manage.py createsuperuser, um einen Benutzer zu erstellen. Es scheint, als gäbe es keinen Standard-Benutzernamen und kein Standard-Passwort, um sich im Admin-Bereich anzumelden.

12voto

Micheal J. Roberts Punkte 2806

Zwei Möglichkeiten, dies zu tun:

Der changepassword Verwaltungsbefehl:

(env) $ python manage.py changepassword 

Oder (was auf ein paar Antworten aufbaut, aber für jedes erweiterte Benutzermodell funktioniert) Verwenden Sie die Django-Admin-Shell wie folgt:

(env) $ python manage.py shell

Dies sollte das Shell-Befehlszeilenfenster wie folgt anzeigen:

Python 3.7.2 (default, Mar 27 2019, 08:44:46) 
[GCC 6.3.0 20170516] on linux
Geben Sie "help", "copyright", "credits" oder "license" für weitere Informationen ein.
(InteractiveConsole)
>>>

Dann wollen Sie Folgendes:

>>> from django.contrib.auth import get_user_model
>>> User = get_user_model()
>>> user = User.objects.get(username='admin@hug.com')
>>> user.set_password('neues Passwort')
>>> user.save()
>>> beenden()

N.B. Warum habe ich diese Frage mit dieser Antwort beantwortet?

Weil, wie erwähnt, User = get_user_model() für Ihre eigenen benutzerdefinierten User-Modelle funktionieren wird. Die Verwendung von from django.contrib.auth.models import User dann User.objects.get(username='Benutzername') kann den folgenden Fehler verursachen:

AttributeError: Der Manager ist nicht verfügbar; 'auth.User' wurde gegen 'users.User' ausgetauscht

10voto

Basant Rules Punkte 655
python manage.py passwortändern benutzername

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X