How to logout in django?

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.


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')
]

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


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'),

Tags:

Python

Django