ですから、あなたが正しいように見えます。少なくともdjango1.4では、を使用するdjango.contrib.sessions.backends.file
と完全に無視されSESSION_COOKIE_AGE
ます。それが本当にバグなのか、それとも文書化されていないだけなのかはわかりません。
この機能が本当に必要な場合は、contribのファイルバックエンドに基づいて独自のセッションエンジンを作成できますが、有効期限機能を使用して拡張できます。
django/contrib/sessions/backends/file.py
次のインポートを開いて追加します。
import datetime
from django.utils import timezone
次に、load
メソッドに2行を追加して、次のように表示します。
def load(self):
session_data = {}
try:
session_file = open(self._key_to_file(), "rb")
if (timezone.now() - datetime.datetime.fromtimestamp(os.path.getmtime(self._key_to_file()))).total_seconds() > settings.SESSION_COOKIE_AGE:
raise IOError
try:
file_data = session_file.read()
# Don't fail if there is no data in the session file.
....
これにより、実際にはセッションファイルの最終変更日が比較されて期限切れになります。
このファイルをプロジェクトのどこかに保存し、SESSION_ENGINE
代わりにとして使用します'django.contrib.sessions.backends.file'
SESSION_SAVE_EVERY_REQUEST
非アクティブに基づいてセッションをタイムアウトする場合は、設定で有効にする必要もあります。