LoginView with Success

Question:

I am currently working with my Django authentification app. My goal is once the user logged in successful I want to redirect it to the index page where my code shows a customised message:

messages.success(request, 'Login Successful', extra_tags='alert alert-dark')

My problem is I didn’t manage to ‘access’ LoginView in my views.py.
I read about SuccessMessageMixin, but this LoginView won’t work (Template Not Found):

class LoginView(auth_views.LoginView):
    template_name = "accounts/login.html"

Do you have any idea how to solve this?

Only as long I include template_name in my urls.py it works, but I can’t add the success message mixin there.

urls.py

from django.urls import path
from django.contrib.auth import views as auth_views

from . import views

app_name = 'accounts'

urlpatterns = [
    path('login/', auth_views.LoginView.as_view(template_name='accounts/login.html'), name='login'),
]
Asked By: Marc

||

Answers:

You have a custom LoginView, but in the urls.py you call auth_views.LoginView.

To call your custom view you should do

from <module_name>.views import LoginView

urlpatterns = [
    path('login/', LoginView.as_view(), name='login'),
]

It’s a good idea to have a different name for your custom view, i.e.CustomLoginView.

You can add the followng snippet in the settings.py files:

LOGIN_REDIRECT_URL = ‘/’

You can add your own index page URL in ‘LOGIN_REDIRECT_URL’ variable

Answered By: DOLA PEDA RAYUDU
Categories: questions Tags: ,
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.