我正在嘗試構建一個簡單的網站,其登錄功能與此處非常相似。 用戶應該能夠以匿名用戶的身份瀏覽網站,並且每個頁面上都會有一個登錄鏈接。當點擊登錄鏈接時,用戶將被帶到登錄表單。成功登錄後,用戶應該被帶回到他首先點擊登錄鏈接的頁面。 我猜我必須以某種方式將當前頁面的URL傳遞給處理登錄表單的視圖,但我無法真正實現它的工作。編號: 我想通了。我通過傳遞當前頁面作爲GET參數鏈接到登錄表單,然後使用'next'重定向到該頁面。謝謝!Django:登錄後重定向到上一頁
編輯2: 我的解釋似乎並不清楚,從而要求在這裏是我的代碼: 比方說,我們在一個頁面foo.html,我們還沒有登錄現在,我們希望有一個鏈接。在foo.html鏈接到login.html。在那裏,我們可以登錄,然後重定向到foo.html。 上foo.html鏈接看起來是這樣的:
<a href='/login/?next={{ request.path }}'>Login</a>
現在我寫道,看起來有點像這樣的自定義登錄視圖:
def login_view(request):
redirect_to = request.REQUEST.get('next', '')
if request.method=='POST':
#create login form...
if valid login credentials have been entered:
return HttpResponseRedirect(redirect_to)
#...
return render_to_response('login.html', locals())
而且在login.html的重要線路:
<form method="post" action="./?next={{ redirect_to }}">
所以是的,這是非常多的,希望能夠說清楚。
我覺得Django登錄的東西爲你處理,它不適合你嗎? – 2009-04-30 13:16:04