[Django]-How to configure where to redirect after a log out in Django?

172๐Ÿ‘

โœ…

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/'})

70๐Ÿ‘

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'
๐Ÿ‘คYeRuizhi

42๐Ÿ‘

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

๐Ÿ‘คedelans

23๐Ÿ‘

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

LOGOUT_REDIRECT_URL = 'url name to redirect'
๐Ÿ‘คSACHIN CHAVAN

14๐Ÿ‘

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?

7๐Ÿ‘

You can even use named urls for your next parameter:

<a href="{% url 'auth_logout' %}?next={% url 'homepage' %}"> Logout</a>
๐Ÿ‘คblueFast

4๐Ÿ‘

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

๐Ÿ‘คuser170386

3๐Ÿ‘

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

๐Ÿ‘คDon

3๐Ÿ‘

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.

๐Ÿ‘คMenda

0๐Ÿ‘

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")

๐Ÿ‘คDcode22

0๐Ÿ‘

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

0๐Ÿ‘

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

ACCOUNT_LOGOUT_REDIRECT_URL = '/'
๐Ÿ‘คArvind Kushwaha

Leave a comment