1. 程式人生 > >基於 Django1.10 文件的深入學習(12)—— django.shortcuts 之 redirect()

基於 Django1.10 文件的深入學習(12)—— django.shortcuts 之 redirect()

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)