Срок действия сеансового ключа Django на основе истечения срока действия

Я использую сеансы Django и хочу установить срок действия для определенного ключа. В представлении AJAX я делаю следующее

request.session['a'] = True
request.session.set_expiry(604800)

Устанавливает ли это срок действия для этого конкретного ключа или этого сеанса? Аналогичным образом я устанавливаю сеансы для других ключей в других представлениях AJAX.

Если я напечатаю request.session.get_expiry_date() в своем представлении, я получу дату через 7 дней, независимо от того, когда я установлю срок действия. С чего бы это?


person Yin Yang    schedule 04.10.2014    source источник


Ответы (1)


Поскольку set_expiry является методом session, он устанавливает срок действия сеанса.

Сессия Django - это цельный объект, нет возможности (без ручной работы) установить срок действия для конкретного ключа)

person Wolph    schedule 04.10.2014
comment
Не могли бы вы немного рассказать о ручной работе, которую можно выполнить для этого? В основном у меня есть различные списки, по которым посетители могут голосовать раз в неделю. Сеансы Django кажутся подходящими, поскольку у меня нет модели User. - person Yin Yang; 05.10.2014
comment
@YinYang, вы можете использовать для этого фреймворк кэширования Django, может быть? - person Anton Strogonoff; 05.10.2014
comment
@AntonStrogonoff Где ключ кэша может быть ключом сеанса? - person Yin Yang; 05.10.2014
comment
@YinYang не уверен, что понимаю тебя. Я имел в виду, когда посетитель голосует, вы устанавливаете для этого посетителя ключ кэша со сроком действия 7 дней. В следующий раз, когда посетитель попытается проголосовать, вы проверите, установлен ли для него ключ кеша. Если нет, то срок его действия истек, и посетитель может проголосовать. - person Anton Strogonoff; 05.10.2014
comment
@AntonStrogonoff У меня нет модели пользователя или посетителя. Как я могу установить ключ кеша для этого посетителя? - person Yin Yang; 05.10.2014
comment
Просто установите ключ кеша на идентификатор сеанса и следуйте предложению Антона :) - person Wolph; 05.10.2014