我正在django制作我的第一个应用程序。我正在写一个记住我的功能,我不是使用登录(请求,用户)也不是认证的东西。如果用户选择“记住我”复选框,我将在一周后设置cookie过期时间。但问题是,在django中记住的每个示例实现中,我都看到了这个request.session.set_expiry()函数。我的疑问是,如果我使用此函数,它将为request.session的每个成员设置到期时间(例如request.session [1],request.session [2],其中这两个是两个不同用户的会话变量)I想要仅为当前登录用户设置set_expiry,如果他点击了“记住我”复选框。所以我正在执行request.session [userid] .set_expiry()而不是request.session.set_expiry(),但它抛出了这个错误---'long'对象没有属性'set_expiry'
这是我在views.py中的功能
username=request.POST['Username']
password=request.POST['Password']
m=mytable.objects.get(Username=username)
if m.Password==password:
request.session[m.id]=m.id
if request.POST.get('remember_me', None):
request.session[m.id].set_expiry(604800)
else:
request.session[m.id].set_expiry(0)
else:
#do something
请指导我完成这个
答案 0 :(得分:1)
您应该request.session.set_expiry()
而不是request.session[m.id]
成员。
request.session
仅识别当前会话的当前会话以及当前请求并非所有用户都登录。
希望您已完成django sessions doc。