authenticate() in django - user model
views.py
from django.contrib.auth.models import User
from django.http import HttpResponse
from django.contrib.auth.hashers import make_password,check_password
from django.contrib.auth import authenticate
def home_view(request):
if request.method == "POST":
data = request.POST
firstname = data.get("first_name")
lastname = data.get("last_name")
email = data.get("email")
password = data.get("password")
username = data.get("username")
try:
user = User.objects.create(
first_name = firstname,
last_name= lastname,
username = username,
email = email,
password = make_password(password)
)
user.save()
return HttpResponse("USER REGISTERED! ")
except Exception as e:
print(e)
return render(request,"register.html")
def login_view(request):
if request.method == "POST":
data = request.POST
print(data)
username = data.get("username")
email = data.get("email")
password = data.get("password")
user = authenticate(username=username,password=password)
print("user is: ",user)
if user:
print("user found")
else:
print("user not found!")
return render(request,"login.html")
-------------------------------------------------------------------------------------------------------------------------
register.html
<form method="post">
{% csrf_token %}
<div class="mb-3">
<label for="exampleInputPassword1" class="form-label">First Name</label>
<input type="text" class="form-control" name="first_name" id="exampleInputPassword1">
</div>
<div class="mb-3">
<label for="exampleInputPassword1" class="form-label">Last Name</label>
<input type="text" class="form-control" name="last_name" id="exampleInputPassword1">
</div>
<div class="mb-3">
<label for="exampleInputPassword1" class="form-label">User Name</label>
<input type="text" class="form-control" name="username" id="exampleInputPassword1">
</div>
<div class="mb-3">
<label for="exampleInputEmail1" class="form-label">Email address</label>
<input type="email" class="form-control" name="email" id="exampleInputEmail1" aria-describedby="emailHelp">
<div id="emailHelp" class="form-text">We'll never share your email with anyone else.</div>
</div>
<div class="mb-3">
<label for="exampleInputPassword1" class="form-label">Password</label>
<input type="password" class="form-control" name="password" id="exampleInputPassword1">
</div>
<button type="submit" class="btn btn-primary">Submit</button>
</form>
-----------------------------------------------------------------------------------------------------------------------
login.html
<form method="post">
{% csrf_token %}
<div class="mb-3">
<label for="exampleInputEmail1" class="form-label">User Name</label>
<input type="text" class="form-control" name="username" id="exampleInputEmail1" aria-describedby="emailHelp">
</div>
<div class="mb-3">
<label for="exampleInputEmail1" class="form-label">Email address</label>
<input type="email" class="form-control" name="email" id="exampleInputEmail1" aria-describedby="emailHelp">
</div>
<div class="mb-3">
<label for="exampleInputPassword1" class="form-label">Password</label>
<input type="password" class="form-control" name="password" id="exampleInputPassword1">
</div>
<button type="submit" class="btn btn-success">Login</button>
</form>