html code
{% if request.user %}
<a href="{% url 'main:logout' %}">
Выход
</a>
{% else %}
<a href="{% url 'main:registration' %}">
Регистрация
</a>
{% endif%}
settings.py
LOGIN_REDIRECT_URL = 'main/index'
views.py
def logout(request):
logout(request)
urls.py
from django.conf.urls import url
from . import views
from django.conf import settings
urlpatterns = [
url(r'^logout/$', views.logout, {'next_page': settings.LOGOUT_REDIRECT_URL}, name='logout')
]
what's wrong?

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.
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'),
import django logout first , just write from django.contrib.auth import logout at the top of your view file
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With