Skip to content

Instantly share code, notes, and snippets.

@gtindo
Created December 17, 2019 22:57
Show Gist options
  • Save gtindo/1795bee2d22eea57f8a537c05b8719f5 to your computer and use it in GitHub Desktop.
Save gtindo/1795bee2d22eea57f8a537c05b8719f5 to your computer and use it in GitHub Desktop.
#1 - Blog, views.py
from django.shortcuts import render
from django.views.generic import FormView
from .forms import AuthForm
from django.contrib.auth.decorators import login_required
from django.contrib import messages
from django.urls.base import reverse_lazy
from django.shortcuts import redirect
class AuthView(FormView):
form_class = AuthForm
template_name = "custom_auth/auth.html"
success_url = reverse_lazy("custom_auth:success_view")
def form_valid(self, form):
status = form.check_and_authenticate(self.request)
success_message = "Authentication occur successfully"
error_message = "Invalid username or password provided"
if status:
messages.add_message(self.request, messages.SUCCESS, success_message)
else:
messages.add_message(self.request, messages.ERROR, error_message)
return redirect("custom_auth:auth_view")
return super().form_valid(form)
def form_invalid(self, form):
error_message = "validation error"
messages.add_message(self.request, messages.ERROR, error_message)
return super().form_valid(form)
@login_required
def success_view(request):
return render(request, "custom_auth/success.html")
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment