You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Django调用request.session.get_session_cookie_age()报错:SessionStore对象无此属性

嘿,我来帮你梳理下这个问题~

首先,你遇到的报错是因为Django 2.0版本的SessionStore对象(也就是request.session对应的实例)根本没有get_session_cookie_age()这个方法,你可能是误看了更高版本的Django文档才尝试调用这个方法的😅。

针对你的需求,分两种情况给你解决方案:

直接从Django配置中读取即可,代码如下:

from django.conf import settings
print(settings.SESSION_COOKIE_AGE)

2. 想获取当前会话的实际过期时长(包括自定义会话过期)

从你调试的结果来看,当前会话已经设置了_session_expiry: 3600,这说明这个会话有自定义的过期时间。这种情况下,你应该使用request.session.get_expiry_age()方法——它会优先返回会话的自定义过期时长,如果没有设置自定义过期,才会返回全局的SESSION_COOKIE_AGE值。

举个例子,你可以在视图里这么写:

print(request.session.get_expiry_age())

这个方法在Django 2.0中是完全支持的,刚好匹配你的版本。

另外,再补充一点:你调试时看到的_session_expiry字段,是Django用来存储会话自定义过期时间的内部字段,直接读取它虽然能拿到值,但官方更推荐使用get_expiry_age()这类封装好的方法,避免内部字段变更带来的问题。

备注:内容来源于stack exchange,提问作者Zikofs

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.14 16:44:35