web-dev-qa-db-ja.com

Djangoでログアウトした後にリダイレクトする場所を設定するにはどうすればよいですか?

ログアウト後にリダイレクトするURLをどこで設定できるのか不思議に思っています。ログインURLを設定できることを知っています。ホームページにリダイレクトしたい。

80
DJ.MaSs

Modern Django(2017+?))にはLOGOUT_REDIRECT_URLという設定があります。

古いDjangos /元の回答

何も上書きしたりラップしたりする必要はありません。

ドキュメントによると、ログアウトビューに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/'})
144

簡単な方法:

「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'
50
YeRuizhi

Django 1.10なので、LOGOUT_REDIRECT_URLドキュメントを参照

31
edelans

現在のページにリダイレクトする

<a href="{% url 'logout' %}?next={{ request.path | urlencode }}">{% trans "Logout" %}</a>

Django 1.9。

参照: Djangoの{%url%}テンプレートタグ経由でクエリパラメータを渡すことは可能ですか?

Setting.pyファイルでLOGOUT_REDIRECT_URLを使用して、ユーザーをどこにでもリダイレクトできます

LOGOUT_REDIRECT_URL = 'url name to redirect'
6
SACHIN CHAVAN

ログアウトビューで、ユーザーをログアウトした後、HttpResponseRedirect(url)を返します。 詳細はこちらをご覧ください

3
Ke Sun

docs から、「次の」ページを上書きする独自のログアウトビュー(単なる単純なラッパー)を作成できます。

2
Dona

クライアントレベルでリダイレクト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を指定します。

2
Menda

次のパラメーターに名前付きURLを使用することもできます。

<a href="{% url 'auth_logout' %}?next={% url 'homepage' %}"> Logout</a>
1
dangonfast