Ich habe eine Django-App, die die Produktauswahl der Benutzer für authentifizierte Benutzer aufzeichnet. Ich beabsichtige, die Variable request.session.session_key
zu verwenden, um anonyme Daten mit einem Benutzer zu verknüpfen, wenn sie sich später für eine Registrierung entscheiden, a la diesen Beitrag:
Django speichert anonyme Benutzerdaten
Es sieht jedoch so aus, als ob sich der Sitzungsschlüssel ändert, wenn sich der Benutzer anmeldet / registriert, so dass der Sitzungsschlüssel nicht mehr mit dem Benutzer verknüpft werden kann. Ist dies das korrekte Verhalten des Django-Session-Frameworks? Gibt es einen soliden Weg, um die Funktionalität zu erreichen, die ich suche?
Jede Hilfe sehr geschätzt.
Obwohl der von nnmware vorgeschlagene Ansatz für diesen speziellen Fall funktioniert, gibt es einen besseren.
Anstatt nichts in cycle_key
zu tun, sollten wir die super-Methode aufrufen und dann die Sitzung speichern.
Wenn Sie in die ursprüngliche Funktion cycle_key
schauen, werden Sie sehen, dass die Daten der alten Sitzung in die neue kopiert werden, aber nicht gespeichert werden.
In settings.py
%Vor%Überprüfen Sie, ob SESSION_ENGINE auf ein Modul (.py-Datei) zeigt, aber nicht auf die Backend-Klasse!
Gehen Sie in Ihrer 'yourapp / session_backend.py' folgendermaßen vor:
%Vor%Eine der Lösungen wäre auch, alte Sitzungsdaten im Sitzungsspeicher zu aktualisieren:
%Vor%Tags und Links django django-admin django-views