2016-06-01 3 views
0

私のアプリケーションのurls.pyファイルに次のコードがあります。代わりに「にnext_page」パラメータ値として「/」を使用してのログアウト後にリダイレクトするために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"), 
] 

、私は「ホーム」または「インデックス」のような名前のパラメータを使用します。どうしたらいいですか?

答えて

1

は、あなたは、単にそのドキュメントが

戻り渡される引数のための適切なURLとして記述され、django.contrib.auth.views.logout usesdjango.shortcuts.resolve_urlとして、next_pageパラメータの値として表示するために逆名を渡すことができます。 の引数は次のようになります。

  • モデル:モデルの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"), 
] 
関連する問題