基於 Django1.10 文件的深入學習(12)—— django.shortcuts 之 redirect()
阿新 • • 發佈:2019-02-10
redirect()
redirect(to, permanent=False, *args, **kwargs)[source]
將HttpResponseRedirect
返回給傳遞的引數的相應URL
。
這個引數可能是:
- 一個模型:模型的
get_absolute_url()
函式將被呼叫。 - 檢視名稱,可能使用引數:
reverse()
將用於反向解析名稱。 - 一個絕對的或相對的
URL
,將按原樣用於重定向位置。
預設情況下會發出臨時重定向; pass permanent = Tru
發出永久重定向。
例子
您可以通過多種方式使用redirect()
函式。
- 通過一些物件; 將呼叫該物件的
get_absolute_url()
URL
:
from django.shortcuts import redirect
def my_view(request):
...
object = MyModel.objects.get(...)
return redirect(object)
- 通過傳遞檢視的名稱和可選的一些位置或關鍵字引數; 該
URL
將使用reverse()
方法進行反向解析:
def my_view(request):
...
return redirect('some-view-name', foo='bar')
- 傳遞一個硬編碼的網址重定向到:
def my_view(request):
...
return redirect('/some/url/')
預設情況下,redirect()返回一個臨時重定向。 所有上述形式都接受永久引數; 如果設定為True,則將返回永久重定向:
def my_view(request):
...
object = MyModel.objects.get(...)
return redirect(object, permanent=True)