如何在 Django 中配置注销后重定向的位置?

只是想知道在注销后我可以将 URL 重定向到哪里。我知道你可以设置登录地址。我想重定向到我的主页。

94773 次浏览

From docs you can write your own logout view (which can be just simple wrapper) overriding the 'next' page.

In your logout view, after you logout the user for good, return HttpResponseRedirect(url). Please see here for more details.

Modern Django (2017+?) has a setting called LOGOUT_REDIRECT_URL.

Older Djangos / Original Answer

You don't need to overwrite or wrap anything.

According to the docs, you can just supply the next_page argument to the logout view. 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/'})

One easier way:

Add 'next' parameter to your log-out request url. For example:

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

Then the logout view will do the trick for you.

For after-login-redirect, you can just simply set it in settings.py:

LOGIN_REDIRECT_URL = '/path_to_the_page'
LOGIN_URL = '/path_to_the_page'

If you want to set the redirection URL on client level, you can do it in the urls.py:

(r'^management/logout/$', 'django.contrib.auth.views.logout'),

And then in the template:

<a href="{% url 'django.contrib.auth.views.logout' %}?next=/">
Log out
</a>

Where the next, you point to the right URL.

You can even use named urls for your next parameter:

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

Redirect to current page

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

Tested in Django 1.9.

See also: Is it possible to pass query parameters via Django's {% url %} template tag?

Since Django 1.10, you can define a LOGOUT_REDIRECT_URL (see the docs)

You can redirect user anywhere by using LOGOUT_REDIRECT_URL in your setting.py file

LOGOUT_REDIRECT_URL = 'url name to redirect'

If you have defined your own urls (and not imported generic auth urls) and are using the standard django auth views, them you can simply add (template_name='example.html') in the path.

path('logout/',auth_views.LogoutView.as_view(template_name='homepage.html'),name="logout")

add this in you project setting.py file LOGOUT_REDIRECT_URL = '/'

you can write your URL between '' I use my index page for logout default redirect

Add the below line in your project setting.py file:

ACCOUNT_LOGOUT_REDIRECT_URL = '/'