[Solved]-How to logout in django?

9๐Ÿ‘

โœ…

You are using your custom logout view which doesnโ€™t take next_page parameter.
You should add it as parameter to your view and pass to django logout call, or just use django.contrib.auth.logout

e.g. in urls.py:

from django.conf.urls import url
from django.conf import settings
from django.contrib.auth.views import logout

urlpatterns = [
    url(r'^logout/$', logout, {'next_page': settings.LOGOUT_REDIRECT_URL}, name='logout')
]
๐Ÿ‘คmilorad.kukic

20๐Ÿ‘

Django 2.0 it looks like it switched to a class based view

from django.contrib.auth.views import LogoutView

url(r'^logout/$', LogoutView.as_view(), {'next_page': settings.LOGOUT_REDIRECT_URL}, name='logout'),
๐Ÿ‘คbruinlax

6๐Ÿ‘

For Django 2.2.x or higher,
if you are using path instead of url, then simply import LogoutView from django.contrib.auth.views in urls.py.

from django.contrib.auth.views import LogoutView

then add following path in urlpatterns,

path("logout/", LogoutView.as_view(), name="logout"),

Note: You need to mention LOGOUT_REDIRECT_URL = "my_url" in settings.py for redirection after logout.

๐Ÿ‘คkhaldi

1๐Ÿ‘

import django logout first , just write from django.contrib.auth import logout at the top of your view file

0๐Ÿ‘

For me, the url โ€˜logoutโ€™ was being used elsewhere, despite Django loudly complaining if I removed the โ€˜logoutโ€™ url from urls.py (I am using Django 1.11). I have no idea why/where/how. My hacky working solution was to use a different url, โ€˜signoutโ€™:

    url(r'^signout/$', logout, {'next_page': settings.LOGOUT_REDIRECT_URL}, name='logout'),
๐Ÿ‘คandyw

0๐Ÿ‘

The following works on Django 4:

from django.urls import path
from django.contrib.auth.views import LogoutView

path("logout/", LogoutView.as_view(template_name="template_to_redirect.html"), name="logout")
๐Ÿ‘คStas Oknedis

Leave a comment