redirect()

redirect()函數返回一個HttpResponseRedirect對象,這個對象表明一個重定向的URL,其函數接口說明以下:python

redirect (to  [  , permanent = False  ]  , *args , **kwargs )

其中permanent表明這個重定向是臨時的仍是永久的,默認值爲False,表示是一個臨時的重定向。其餘的參數能夠是:
1.一個模型類:將調用這個模型類的 get_absolute_url() 方法獲得URL後進行重定向;
2.一個視圖函數的名稱,及其相應的參數:將調用視圖函數的urlresolvers.reverse()方法來獲得URL並進行重定向;
3.一個URL對象:用來進行重定向。函數

下面舉幾個例子:
1.首先,能夠給redirect方法傳遞一個模型對象做爲參數,它會調用這個模型對象的get_absolute_url()來獲得URL進行重定向:url

def my_view (request ):
    ...
     object  = MyModel. objects. get (... )
     return redirect ( object )

2.其次,能夠給redirect方法傳遞一個視圖函數名稱做爲參數,來進行URL重定向,同時還能夠給這個視圖函數傳遞參數:spa

def my_view (request ):
    ...
     return redirect (’some-view-name’ , foo =’bar’ )

3.最後,咱們還能夠給redirect函數傳遞一個實際的URL路徑(完整路徑或者相對路徑):code

#相對路徑
def my_view (request ):
    ...
     return redirect (’/some/url/’ )
#完整路徑:
def my_view (request ):
    ...
     return redirect (’http://www. onepub. net/’ )

4.缺省狀況下permanent=False,表示是一個臨時的重定向,咱們能夠把這個參數設置爲True,讓其變成一個永久的重定向:對象

def my_view (request ):
    ...
     object  = MyModel. objects. get (... )
     return redirect ( object , permanent = True )
相關文章
相關標籤/搜索