Django - Leite den Benutzer nach der Anmeldung auf seine benutzerdefinierte Seite um - & gt; mysite.com/Benutzername
Standardmäßig nach dem login django leitet den Benutzer auf eine Konto/Profil-Seite, oder wenn Sie Bearbeiten die LOGIN_REDIRECT_URL können Sie den Benutzer zu einer anderen Seite geben Sie an, in der settings.py.
Das ist großartig, aber ich möchte, dass der Benutzer (nach Anmeldung) werden weitergeleitet, um eine benutzerdefinierte Seite, wo der link auf diese Seite würde in etwa so Aussehen: mysite.com/username
. Also die Standard-Konten/profile oder die LOGIN_REDIRECT_URL-Einstellungen nicht funktionieren würde, in diesem Fall, da beide irgendwie statisch. In meinem Fall die username
Abschnitt der Adresse ändert sich für jeden Nutzer.
Irgendwelche Ideen, wie ich es so machen kann, wenn der Benutzer angemeldet ist, in würde gehen zu einer benutzerdefinierten Seite, die Benutzernamen in der Adresse wie: mysite.com/username
? Jeder input wird wirklich geschätzt.
InformationsquelleAutor der Frage avatar | 2011-02-02
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie die Authentifizierung und Anmeldung der Benutzer als hier angegeben: http://docs.djangoproject.com/en/dev/topics/auth/#how-to-log-a-user-in
Dadurch erhalten Sie Zugriff auf das User-Objekt aus können Sie den Benutzernamen und führen Sie dann eine HttpResponseRedirect, um die benutzerdefinierte URL.
InformationsquelleAutor der Antwort Abid A
Einen einfacheren Ansatz stützt sich auf die Umleitung von der Seite LOGIN_REDIRECT_URL. Die wichtige Sache zu wissen ist, dass die Benutzer-Informationen werden automatisch in die Anfrage einbezogen.
Angenommen:
und Sie so konfiguriert haben, dass ein urlpattern:
Dann, alles, was Sie brauchen, zu schreiben, für die Ansicht
home()
ist:wo
NAME_OF_PROFILE_VIEW
ist der name der callback, den Sie verwenden. Mit django-profileNAME_OF_PROFILE_VIEW
werden kann "profiles_profile_detail'.InformationsquelleAutor der Antwort Stu
Ja! In Ihrem settings.py definieren Sie die folgenden
Haben und '/Ihr-Pfad' sein, eine einfache Sicht, dass sucht
self.request.user
und tut, was Logik, die es braucht, um wieder eineHttpResponseRedirect
Objekt.Einen besseren Weg könnte zum definieren einer einfachen URL wie
'/simple'
hat, der die lookup-Logik. Die URL sieht schöner aus, spart einiges an Arbeit, etc.InformationsquelleAutor der Antwort Jarvis Jones
Bekam in django vor kurzem und wurde nach einer Lösung und fand eine Methode, die nützlich sein könnten.
So zum Beispiel, wenn Sie mit allouth der default redirect Konten/profile.
Eine Ansicht, die allein leitet zu einem Ort Ihrer Wahl, mit dem Feld Benutzername etwa so:
Dann eine Ansicht erstellen, erfasst Sie in einer Ihrer apps, zum Beispiel:
Wo die urlpatterns erfassen würde wie folgt Aussehen:
Funktioniert gut für mich.
InformationsquelleAutor der Antwort mromanda
InformationsquelleAutor der Antwort Mukesh Sahni