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