ログアウト後にリダイレクトするURLをどこで設定できるのか不思議に思っています。ログインURLを設定できることを知っています。ホームページにリダイレクトしたい。
Modern Django(2017+?))にはLOGOUT_REDIRECT_URL
という設定があります。
何も上書きしたりラップしたりする必要はありません。
ドキュメントによると、ログアウトビューにnext_page
引数を指定するだけです。 https://docs.djangoproject.com/en/dev/topics/auth/default/#Django.contrib.auth.views.logout
(r'^logout/$', 'Django.contrib.auth.views.logout',
{'next_page': '/successfully_logged_out/'})
簡単な方法:
「next」パラメーターをログアウトリクエストURLに追加します。例えば:
<a href="{% url 'auth_logout' %}?next=/path_to_the_page"> Logout</a>
その後、ログアウトビューがあなたのためのトリックを行います。
ログイン後リダイレクトの場合は、単にsettings.pyで設定するだけです。
LOGIN_REDIRECT_URL = '/path_to_the_page'
LOGIN_URL = '/path_to_the_page'
Django 1.10なので、LOGOUT_REDIRECT_URL
( ドキュメントを参照 )
現在のページにリダイレクトする
<a href="{% url 'logout' %}?next={{ request.path | urlencode }}">{% trans "Logout" %}</a>
Django 1.9。
Setting.pyファイルでLOGOUT_REDIRECT_URLを使用して、ユーザーをどこにでもリダイレクトできます
LOGOUT_REDIRECT_URL = 'url name to redirect'
ログアウトビューで、ユーザーをログアウトした後、HttpResponseRedirect(url)を返します。 詳細はこちらをご覧ください 。
docs から、「次の」ページを上書きする独自のログアウトビュー(単なる単純なラッパー)を作成できます。
クライアントレベルでリダイレクトURLを設定する場合は、urls.py
:
(r'^management/logout/$', 'Django.contrib.auth.views.logout'),
そして、テンプレートで:
<a href="{% url 'Django.contrib.auth.views.logout' %}?next=/">
Log out
</a>
next
には、正しいURLを指定します。
次のパラメーターに名前付きURLを使用することもできます。
<a href="{% url 'auth_logout' %}?next={% url 'homepage' %}"> Logout</a>