tiberhockey
tiberhockey

Reputation: 576

Django Redirect Urls

I have some problem about finding how to redirect an url. So when a user is logged in my site and click the logout button he is now logged out, which is fine, but I want to redirect him to the login page, and I dont know how to do it. Thanks you

from django.contrib import admin
from django.urls import path, include
from django.contrib.auth import views as auth_views
from users import views as user_views



urlpatterns = [
    path('admin/', admin.site.urls),
    path('', include('sms.urls')),
    path('register/', user_views.register, name='register'),
    path('login/', auth_views.LoginView.as_view(template_name='users/login.html'), name='login'),
    path('logout/', auth_views.LogoutView.as_view(template_name='users/logout.html'), name='logout'),
]

Upvotes: 1

Views: 34

Answers (1)

willeM_ Van Onsem
willeM_ Van Onsem

Reputation: 476729

You can set the .next_page attribute [Django-doc]:

urlpatterns = [
    # …
    path('login/', auth_views.LoginView.as_view(template_name='users/login.html'), name='login'),
    path(
        'logout/',
        auth_views.LogoutView.as_view(
            template_name='users/logout.html',
            next_page='login'
        ),
        name='logout'
    ),
]

or, alternatively, you can set the LOGOUT_REDIRECT_URL setting [Django-doc]:

# settings.py

# …
LOGOUT_REDIRECT_URL = 'login'
# …

Upvotes: 1

Related Questions