0

我正在 django 制作我的第一个应用程序。我正在编写一个函数来记住我,我既没有使用登录(请求,用户)也没有使用身份验证。如果用户选择记住我复选框,我将在一周后设置 cookie 过期时间。但问题是,在 django 中记住的每个示例实现中,我都看到了这个 request.session.set_expiry() 函数。我的疑问是,如果我使用这个函数,它将为 request.session 的每个成员设置到期时间(例如 request.session[1],request.session[2] 这两个是两个不同用户的会话变量)我如果他点击记住我复选框,则只想为当前登录的用户设置_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

请指导我完成这个

4

1 回答 1

1

你应该做request.session.set_expiry()而不是在成员上request.session[m.id]

标识的request.session唯一当前会话以及当前请求的用户并非所有用户都已登录。

希望你已经完成了django session doc。

于 2013-07-23T07:18:24.223 回答