可能重複:
Django: Redirect to previous page after login重定向/返回到Django中的相同(前一個)頁面?
有什麼選擇,當你想向用戶返回Django的同一頁,什麼是各自的優點/缺點?
方法我知道:含
- HTTP_REFERER
- GET參數前面的URL
- 會話數據存儲先前的URL
是否還有其他?
可能重複:
Django: Redirect to previous page after login重定向/返回到Django中的相同(前一個)頁面?
有什麼選擇,當你想向用戶返回Django的同一頁,什麼是各自的優點/缺點?
方法我知道:含
是否還有其他?
其中一個方法是使用HTTP_REFERER
頭象如下:
from django.http import HttpResponseRedirect
def someview(request):
...
return HttpResponseRedirect(request.META.get('HTTP_REFERER'))
不知道這個缺點的!
我認爲,大多數用戶/瀏覽器都會關閉http_referer。 –
你知道關閉標題有多困難嗎?大多數用戶不知道它是什麼,更不用說如何關閉它。在Firefox和Chrome中,你必須_手動修改preferences_(再次,並不是很多人知道如何去做);在IE中你根本無法禁用它(它對安全站點自動禁用)。 –
我認爲,如果request.META沒有設置,重定向到網站的主頁將會更好:return HttpResponseRedirect(request.META.get('HTTP_REFERER','/')) – nickzam
雖然問題和答案很舊,但我認爲它缺少幾個選項。我沒有發現任何方法的缺點,我很樂意知道是否有任何方法?
from django.shortcuts import redirect
redirect(request.path_info) # No query parameters
redirect(request.build_absolute_uri()) # Keeps query parameters
redirect(request.get_full_path()) # Keeps query parameters
鏈接 「登錄後」 說。我有沒有問過「登錄後」?這個問題可以真實地概述這個問題。它不值得-1,它值得+1。 Jeeez –
相反,邏輯與get或post沒有什麼不同,它只是一個重定向問題,除非定義一些推理,否則沒有pro和con的參與,你的問題是廣泛的,沒有適當的研究或試驗。 –
這是非常不同的。 Django登錄和註釋重定向是內置的。我的問題是針對其他情況;) –