2013-01-08 75 views
0

我有一個網站,我一直在Django上了一段時間寫網站現在,但從來沒有encoutered這樣的事情之前...Django的會話超時隨機

麻煩的是,當我登錄一切似乎都沒問題,但作爲隨機頁面衝浪,經常發生的事情是,{%if user.is_authenticated%} {%endif%}消失,因爲我沒有登錄,但我只是。

如果我回到以前的網頁,我已登錄,纔去下一個頁面,它顯示我在再次登錄,和它發生完全隨機。這並不是發生在特定行爲之後。

通常,當我嘗試這樣做是故意的一切工作正常,但經過一段時間這樣的事情發生。雖然如果去登錄頁面,雖然它隨機顯示我退出,它會自動記錄我回來,因爲像我明白會議確實存在,由於某種原因Django只是不會看到它.....

我很困惑什麼可能是錯的。任何可能的建議都會很棒。

1)我沒有使用任何會話功能。基本上沒有什麼能夠有意識地觸發這些事件。只是簡單的邏輯視圖,並返回選擇render_to_response( '模板',的RequestContext(請求,{})) Django是上nginx的uwsgi運行

2)

3)這裏是網站site,目前正在開發,但你可以登錄用戶測試,密碼測試嘗試...也許發生同樣的效果,你會看到它......但我不保證它會發生不經意間,它完全是隨機的。嘗試你只需點擊隨機頁面.....最終你會發現它表明你已經註銷,但你沒有註冊。

回答

0

您的文章並沒有給我們很多信息的工作,和你的頁面超時。

我的建議是最好的login_required裝飾添加到您的所有意見。如果您實際上被註銷,您將能夠看到發生的情況。

添加導入到你的頁面的頂部,像這樣每個視圖上方的裝飾:

from django.contrib.auth.decorators import login_required 


@login_required(login_url='LINK_TO_LOGIN_URL') 
def first_view(request): 
    # Your view code 

您將被重定向到您沒有登錄的任何點登錄網址

一旦您診斷您要註銷的位置,您應該可以更輕鬆地排除故障。如果您可以訪問每個視圖,那麼您可以對您的模板和is_authenticated代碼進行疑難解答。