Skip to content

Instantly share code, notes, and snippets.

@rg3915
Created September 7, 2019 04:38
Show Gist options
  • Save rg3915/bf15e0916c9bad38796b3656f71071b0 to your computer and use it in GitHub Desktop.
Save rg3915/bf15e0916c9bad38796b3656f71071b0 to your computer and use it in GitHub Desktop.
Django login LoginView override form valid authenticate snippets
from django.contrib.auth import authenticate
from django.contrib.auth import login as auth_login
from django.contrib.auth.views import LoginView
from django.shortcuts import render, HttpResponseRedirect
from django.urls import reverse
class MyLoginView(LoginView):
template_name = 'accounts/login.html'
authentication_form = LoginForm
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
context['company'] = settings.COMPANY
return context
def form_valid(self, form):
"""Security check complete. Log the user in."""
user = form.get_user()
employee = Employee.objects.get(username=user)
if employee.active:
auth_login(self.request, form.get_user())
return HttpResponseRedirect(self.get_success_url())
def my_login(request):
form = LoginForm(request.POST or None)
template_name = 'accounts/login.html'
if request.method == 'POST':
if form.is_valid():
user = authenticate(
request, username=form.username,
password=form.password
)
auth_login(request, user)
return HttpResponseRedirect(reverse('core:dashboard'))
context = {'form': form}
return render(request, template_name, context)
@RuchitMicro
Copy link

Thanks <3 <3 saved my ass lol 👍

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment