2013-07-23 33 views
0

我在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(),但它拋出這個錯誤---'長'對象沒有屬性'set_expiry'django-remember me-'long'object has no attribute'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

您的示例代碼顯示對Django的理解很差。在明確存儲密碼是一個非常錯誤的事情。你最好的選擇是使用'django.contrib.auth'並放棄你自己的實現。 – bouke

回答

1

你應該對request.session[m.id]成員做,而不是request.session.set_expiry()

與用戶當前請求一起只認當前會話的request.session並非所有的用戶登錄。

希望您通過django sessions文檔了。

相關問題