Wie richte ich Session-Variablen bei der Anmeldung django-Registrierung und Auth verwenden?
-
20-09-2019 - |
Frage
Ich bin mit django-Anmeldung Benutzer in meiner Anwendung anmelden. Das Teil funktioniert gut. Der Teil, dass ich nicht herausfinden kann, ist, wie man Satz benutzerdefinierte Session-Variablen, wenn sich der Benutzer anmeldet. Zum Beispiel, Ich mag würde Variablen füllen Userprofile Daten sowie die Ausgabe von einigen anderen Funktionen enthält. Dann würde ich in der Lage sein, diese Informationen in der folgenden Ansichten / Vorlagen.
Wenn jemand mich zu einem Tutorial Online zeigen kann oder einige Beispiel-Code schreiben, das wäre toll.
Ich bin mit django 1.1 und Python 2.6
Lösung
Wenn Sie keine dauerhafte Speicherung von Benutzerdaten wollen (nur zusätzliche Sitzungsdaten) finden Sie unter:
http://docs.djangoproject.com/en/dev/ Themen / http / sessions /
Die Sitzungen Rahmen wird höchstwahrscheinlich bereits aktiviert, wenn Sie django.contrib.auth verwenden.
Wenn Sie persistente Speicherung von zusätzlichen Benutzerdaten (nicht nur in einer Sitzung, sondern in der Datenbank), speichert man sich in einem anderen „Profil“ -Modell:
http: // docs. djangoproject.com/en/dev/topics/auth/#storing-additional-information-about-users
Andere Tipps
Ich weiß, @stefanw sofern Sie eine alternative Lösung, aber die ursprüngliche Frage zu beantworten:
Einstellen von Sitzungsdaten bei der Anmeldung ist schwierig, weil der einfachste Ort zu setzen, die Daten in Ihrer View-Funktion sind, und die jeweilige View-Funktion Sie ein Teil der contrib.django.auth App ändern wollen würden ist.
So Ihre Optionen wären folgend:
- Erstellen Sie eine kleine Middleware-Klasse Ihre Sitzungsdaten zu setzen.
- Erstellen Sie eine Template-Tag oder ein anderes Stück Code als in die Login-Vorlage oder nachfolgende Seite integriert werden, die die Daten eingestellt werden Sie wollen.
- Schreiben Sie Ihre eigene benutzerdefinierte Login-View-Funktion (es ist wirklich ganz einfach, tatsächlich).
Happy django-ing!