2017-05-31 58 views
0

我試過搜索文檔,但我無法理解,兩者之間是否有任何區別,或者兩者都可以互換使用,並稍作修改。 或重定向僅用於返回語句中。我試圖通過文檔搜索,但無法找到。任何幫助,將不勝感激。 https://docs.djangoproject.com/en/1.11/ref/class-based-views/base/#redirectview https://docs.djangoproject.com/en/1.11/topics/http/shortcuts/#redirectRedirectView.as_view V/s重定向

+0

的'redirect' *功能*只返回一個可以使用的'Response'對象作爲另一種觀點的一部分。 'RedirectView'是一個完整的基於類的視圖*類*,它可以在您自己的視圖中繼承或按原樣使用 –

回答

1

RedirectView.as_view()是 - 如它的名稱所暗示的 - 的圖。這意味着它接受一個請求作爲第一個參數,它可以接受一些其他參數,並返回一個HttpResponse。網址格式必須包含其他網址格式,或直接引用視圖。因此可以將RedirectView.as_view()直接掛接到您的URL配置中。

redirect()不是視圖,因爲它不接受請求作爲其第一個參數。這意味着它不能掛鉤到你的URL配置中。當然

redirect()罐中的觀點,那麼它可以掛到您的網址配置,例如內部使用:

def redirect_view(request): 
    return redirect('/')