2010-08-05 8 views
0

J'ai besoin de suivre certaines informations sur les utilisateurs, mais je voudrais le conserver pour une période de temps fixe, disons une semaine.Dans django, toutes les données de session sont-elles supprimées si un utilisateur se déconnecte?

Si je définis cette valeur via request.sessions, et que l'utilisateur se déconnecte, puis-je le récupérer s'il se reconnecte plus tard? Tout cela suppose que mes sessions sont normalement définies pour expirer dans 30 jours, si l'utilisateur NEVER se déconnecte. En pensant au problème ci-dessus, j'ai décidé de stocker les données dans un tableau, mais j'aimerais quand même connaître la réponse à la question ci-dessus pour référenCe. J'ai également décidé de ne pas utiliser de cookies pour cause de manque de fiabilité.

Répondre

1

Cela dépend de votre backend de session. Mais le backend par défaut (backends.db) supprime la ligne de la table des sessions lorsque vous vous déconnectez.

Je recommanderais d'ajouter les données à un champ dans le profil d'utilisateur. L'utilisation de la session posera des problèmes même si vous ne supprimez pas les données. La prochaine fois que l'utilisateur se connecte, vous ne saurez pas quel identifiant de session il/elle a utilisé la dernière fois et normalement vous n'avez que l'identifiant de session à rechercher. Ce n'est pas un identifiant d'utilisateur, donc vous pouvez obtenir toutes les sessions appartenant à un utilisateur spécifique.