Von Django's documentation for set_expiry
:eine Django-Session Verfallen Unabhängig von Modified Zeit
eine Sitzung zu lesen, ist die Aktivität nicht für den Verfall Zwecke berücksichtigt. Der Sitzungsablauf wird ab dem letzten Zeitpunkt der Sitzung geändert berechnet.
Djangos Standardwert für die SESSION_COOKIE_AGE
Einstellung ist 1209600
(2 Wochen, in Sekunden). Wenn also eine Sitzung am 1. Januar um Mitternacht erstellt wird, wird sie am 15. Januar um Mitternacht ablaufen. Aber wenn diese Sitzung zum Beispiel am 14. Januar um Mitternacht geändert wird, würde sie am 28. Januar um Mitternacht anstatt am 15. Januar um Mitternacht ablaufen.
Ich bin zufrieden mit der Standardlebensdauer von zwei Wochen, aber ich möchte den effizientesten Weg wissen, damit alle Sitzungen in zwei Wochen ablaufen, nachdem sie erstellt wurden - selbst wenn sie geändert werden. Es scheint so, als müsste ich eine Middleware schreiben, um die Session-Erstellungszeit zu überprüfen und dann das Ablaufdatum auf zwei Wochen zu setzen, aber es scheint, als müsste es einen effizienteren Weg geben.
Ah, ich möchte Ich habe über Unterklassen nachgedacht! Danke für den Vorschlag! Ich bin mir ziemlich sicher, dass ich nur die create-Methode überschreiben muss und das war's. Und es müssen nur zwei Zeilen sein! Erste Zeile: 'super (SessionStore, self) .create()' Zweite Zeile: 'self.set_expiry (timezone.now() + timedelta (seconds = settings.SESSION_COOKIE_AGE))' Ich habe das noch nicht gründlich getestet, aber Nach den Tests, die ich gemacht habe, scheint es zu funktionieren. – Nick