2016-06-01 52 views
0

我在其中一個應用程序的urls.py文件中有以下代碼。如何使用next_page參數中的named url在註銷後重定向?

from django.conf.urls import url 
from .views import * 

urlpatterns = [ 
    url(r'^signup/$', SignUpView.as_view(), name="signup"), 
    url(r'^login/$', LoginView.as_view(), name="login"), 
    url(r'^logout/$', 'django.contrib.auth.views.logout', {'next_page': '/'}, name="logout"), 
] 

而不是使用'/'作爲'next_page'參數值,我想使用命名參數'home'或'index'。我該怎麼做?

回答

1

您可以在反向名稱只是傳遞一種觀點作爲next_page參數的值,如django.contrib.auth.views.logout usesdjango.shortcuts.resolve_url,其中它的文檔描述爲

返回適合傳遞參數的URL。 的參數可以是:

  • 模型:模型的get_absolute_url()函數將被調用。
  • 視圖名稱,可能帶有參數:urlresolvers.reverse()將 用於反向解析名稱。
  • URL,將按原樣返回。
1

對於需要從url名稱獲取實際url的所有情況,您可以使用reverse_lazy()。

from django.core.urlresolvers import reverse_lazy 

urlpatterns = [ 
    url(r'^signup/$', SignUpView.as_view(), name="signup"), 
    url(r'^login/$', LoginView.as_view(), name="login"), 
    url(r'^logout/$', 'django.contrib.auth.views.logout', {'next_page': reverse_lazy('home')}, name="logout"), 
]