我正在嘗試建立一個(gè)簡(jiǎn)單的網(wǎng)站,其登錄功能與SO上的登錄功能非常相似。用戶(hù)應(yīng)該能夠以匿名用戶(hù)的身份瀏覽站點(diǎn),并且每個(gè)頁(yè)面上都會(huì)有一個(gè)登錄鏈接。當(dāng)單擊登錄鏈接時(shí),用戶(hù)將被帶到登錄表單。成功登錄后,應(yīng)將用戶(hù)帶回到他首先單擊登錄鏈接的頁(yè)面。我猜想我必須以某種方式將當(dāng)前頁(yè)面的url傳遞給處理登錄表單的視圖,但實(shí)際上無(wú)法使其正常工作。編輯:我想通了。我通過(guò)將當(dāng)前頁(yè)面作為GET參數(shù)傳遞來(lái)鏈接到登錄表單,然后使用“下一個(gè)”重定向到該頁(yè)面。謝謝!編輯2:我的解釋似乎不清楚,所以這里要求的是我的代碼:假設(shè)我們?cè)陧?yè)面foo.html上,并且尚未登錄?,F(xiàn)在我們想在foo.html上建立一個(gè)鏈接,該鏈接登錄。我們可以在那里登錄,然后將其重定向回foo.html。foo.html上的鏈接如下所示: <a href='/login/?next={{ request.path }}'>Login</a> 現(xiàn)在,我編寫(xiě)了一個(gè)自定義登錄視圖,看起來(lái)像這樣: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())還有l(wèi)ogin.html中的重要一行:<form method="post" action="./?next={{ redirect_to }}">是的,就這樣,希望可以弄清楚。
2 回答

呼啦一陣風(fēng)
TA貢獻(xiàn)1802條經(jīng)驗(yàn) 獲得超6個(gè)贊
要支持帶有參數(shù)/值的完整網(wǎng)址,您需要:
?next={{ request.get_full_path|urlencode }}
而不只是:
?next={{ request.path }}
添加回答
舉報(bào)
0/150
提交
取消