2014-09-30 56 views
0

在我的settings.py我有SESSION_EXPIRE_AT_BROWSER_CLOSE = True。我不確定這是否是正確的地方,如果需要先輸入任何東西。但它不適用於Chrome版本37.0.2062.124 m因爲它會保留會話數據。即使關閉並重新打開瀏覽器,依賴會話的頁面仍會打開。有趣的Django會話行爲

所以,我手動清除會話數據(csrftoken,在Chrome的設置sessionidDatabase Data會話不再工作都沒有。即使我登錄,並嘗試在同一瀏覽器的另一個選項卡(瀏覽器,火狐打開home頁,IE,Safari瀏覽器),我重定向到login頁。

def index(request): #login page. 
    if 'id' in request.session: 
     Proceed to Home Page 
    if request.method == 'POST': 
     Do the needful 
     set request.session['id'] 
     proceed to Home Page 
    return render(request, 'myapp/index.html') 

def home(request): #homp page 
    if 'id' not in request.session: 
     redirect to login page 
    return render(request, 'myapp/home.html') 

如何去使這項工作?

回答

0

我認爲,set_expiry(0)將做的工作。這裏the doc

def index(request): #login page. 
    if 'id' in request.session: 
     Proceed to Home Page 
    if request.method == 'POST': 
     Do the needful 
     set request.session['id'] 
     request.session.set_expiry(0)#<--- 
     proceed to Home Page 
    return render(request, 'myapp/index.html')