I am trying to make it so that if the user already exists then log in the user else return error message. I read the documentation and implemented it into my own project. I get error: "The view sign_in.views.sign_in didn't return an HttpResponse object. It returned None instead."
from django.shortcuts import render, redirect
from .forms import SignInForm
from django.contrib.auth import authenticate, login
from django.contrib import messages
def sign_in(request):
if request.method == "POST":
form = SignInForm(request.POST)
else:
form = SignInForm()
username = request.POST.get("username")
password = request.POST.get("password")
user = authenticate(username=username, password=password)
if user is not None:
login(request, user)
return redirect("boom-home")
messages.success(request, f"Signed in as {user}")
else:
return messages.error(request, f"Failed to sign in as {user}.")
context = {
"form": form
}
return render(request, "sign_in/sign_in.html", context)
NOTE: usually this error is because people do not put "return" before the "render" method but I do put return.