Ich verwende Django (Version 1.3) und habe sowohl den Administrator-Benutzernamen als auch das Passwort vergessen. Wie setze ich beide zurück?
Und ist es möglich, einen normalen Benutzer zum Administrator zu machen und dann den Administratorstatus zu entfernen?
manage.py createsuperuser
einen zweiten Superuser erstellen und dann die Liste der Benutzer anzeigen, um den ursprünglichen zu finden. Melden Sie sich dann als Original an und löschen Sie den neuen Superuser.python manage.py createsuperuser
Wenn Sie einen weiteren Superuser erstellen, können Sie sich bei admin anmelden und Ihren Benutzernamen erneut speichern.Um einem normalen Benutzer Berechtigungen zu erteilen, öffnen Sie eine Shell mit
python manage.py shell
und versuchen Sie:quelle
user.is_staff = True
Sie können es über die Konsole versuchen:
Verwenden Sie dann das folgende Skript in der Shell
listet euch alle Superuser im System auf. Wenn Sie Ihren Benutzernamen aus der Liste erkennen:
und Sie legen ein neues Passwort fest (:
quelle
User.objects.filter(is_superuser=True)
pip install django-extensions
, füge es hinzuinstalled apps
und starte./manage.py shell_plus
. DieUser
Klasse wird verfügbar sein und Sie könnenpassword-change
.Mit
createsuperuser
Befehl können Sie einen neuen Superuser erstellen .quelle
Das ist eine sehr gute Frage.
python manage.py changepassword user_name
Beispiel: -
quelle
Das neue Setup sollte zuerst ausgeführt werden
python manage.py createsuperuser
, um einen Benutzer zu erstellen. Es scheint, dass es kein Standardkennwort für den Benutzernamen gibt, um sich bei admin anzumelden.quelle
Eine der besten Möglichkeiten, den Benutzernamen und das Kennwort 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
Drucken einer Benutzerliste Für Python 2-Benutzer verwenden Sie den Befehl "Benutzer drucken". Für Python 3-Benutzer verwenden Sie den Befehl "Drucken (Benutzer)". Der erste Benutzer ist normalerweise der Administrator.
Wählen Sie den Benutzer aus, dessen Passwort Sie ändern möchten, z
"user = users[0]"
Legen Sie das Passwort fest
user.set_password('name_of_the_new_password_for_user_selected')
Speichern Sie das neue Passwort
"user.save()"
Starten Sie den Server und melden Sie sich mit dem Benutzernamen und dem aktualisierten Passwort an.
quelle
manage.py changepassword
ist, dass Sie nicht auf die Passwörter beschränkt sind, die Sie verwenden können oder nicht - nicht mehr zu ähnlich wie bei Benutzernamen. (Dies ist in meiner Entwicklungsumgebung. Ich befürworte keine schwächeren Passwörter. Sie sollten immer starke Passwörter in Prod verwenden.)Möglicherweise haben Sie auch eine falsche Setup-Frage beantwortet und haben keine Mitarbeiter. In diesem Fall gehen Sie zu Postgres:
Zum Reparieren direkt bearbeiten:
quelle
Zwei Möglichkeiten, dies zu tun:
Der
changepassword
Verwaltungsbefehl :Oder (das einige Antworten erweitert, aber für jedes erweiterte Benutzermodell funktioniert) die Django-Admin-Shell wie folgt verwenden:
Dies sollte die Shell-Eingabeaufforderung wie folgt aufrufen:
Dann möchten Sie Folgendes:
NB Warum habe ich diese Frage mit dieser Antwort beantwortet?
Weil, wie erwähnt,
User = get_user_model()
für Ihre eigenen benutzerdefiniertenUser
Modelle funktioniert . Die Verwendung vonfrom django.contrib.auth.models import User
thenUser.objects.get(username='username')
kann den folgenden Fehler auslösen:quelle
Wenn Sie vergessen haben, einen Administrator zu erstellen, erstellen Sie zuerst einen mit dem
createsuperuser
Befehl onmanage.py
und ändern Sie dann das Kennwort.quelle
Sie können dies versuchen:
1. Ändern Sie das Superuser-Passwort ohne Konsole
2.Ändern Sie das Superuser-Passwort über die Konsole
quelle
Falls Sie die hier erstellten Benutzernamen nicht kennen. Sie können die Benutzer wie oben von @FallenAngel beschrieben abrufen.
Für den Fall, dass Sie Ihr unabhängiges Benutzermodell erstellt haben. Ein einfacher Fall ist, wenn Sie E-Mail als Benutzernamen anstelle des Standardbenutzernamens verwenden möchten. In diesem Fall befindet sich Ihr Benutzermodell an einem Ort wie your_accounts_app.models, und die oben genannte Lösung funktioniert nicht. In diesem Fall können Sie stattdessen die Methode get_user_model verwenden
quelle
Wenn Sie Ihren Administrator vergessen haben, müssen Sie mithilfe von einen neuen Benutzer erstellen
und für das Passwort gibt es einen CLI-Befehl
changepassword
für django, um das Benutzerkennwort zu ändernODER
ODER Führen Sie diesen Code in Django env aus
quelle
Eine weitere erwähnenswerte Sache ist, den Status Ihres Benutzers
is_staff
als aktiv festzulegen. Zumindest funktioniert das bei mir. Für weitere Details habe ich eine andere erstellt,superuser
wie oben erläutert. Dann gehe ich zur Datenbanktabelleauth_user
und suche nach diesem Benutzernamen, um sicherzustellen, dass seinis_staff
Flag auf gesetzt ist1
. Das erlaubte mir schließlich, mich vor Ort anzumeldenadmin
.quelle
Erstellen Sie einen neuen Superuser mit dem Befehl "python manage.py createduperuser". Melden Sie sich als neuer Superuser an. Klicken Sie auf den Link "Benutzer". Klicken Sie dann auf den Benutzer, den Sie löschen möchten. Klicken Sie am Ende der Formularseite auf Benutzer löschen.
Hinweis - Mit dem oben beschriebenen Vorgang werden Änderungen an den Aktivitätsprotokollen vorgenommen, die von diesem bestimmten Benutzer erstellt wurden.
quelle
python manage.py changepassword Benutzername
quelle
verwenden
Dann schauen Sie am Ende nach dem Benutzernamen
quelle
Der beste Weg ist, einfach zu Ihrem Terminal zu gehen und zu tippen
und geben Sie erneut ein Passwort und einen Benutzernamen ein, aber Sie verlieren in den meisten Fällen einen Teil Ihres Profils, das Sie zuvor erstellt haben.
quelle
Ich denke, der bessere Weg an der Kommandozeile
quelle
Es ist sehr einfach, diesen Befehl einfach in Ihre Befehlszeile einzugeben
python manage.py changepassword yourusername
quelle
Eine andere Möglichkeit, den Benutzernamen (und die meisten Informationen) abzurufen, besteht darin, direkt auf die Datenbank zuzugreifen und die Informationen aus den Tabellen zu lesen.
quelle