Я не знаю, что происходит с логином пользователя, когда пользователь регистрируется, все сохраняется в базе данных, когда я проверяю консоль администратора, но когда пользователь хочет войти в систему, он не аутентифицирует пароль. Но если я go выхожу на консоль администратора и вручную изменяю пароль пользователя даже на тот же пароль, который был зарегистрирован пользователем, то пользователь успешно войдет в систему. Я пробовал это как 10 раз, это не будет аутентифицировать пользователя, пока я не вручную изменю пароль. Я надеюсь получить ответ в ближайшее время, потому что я просмотрел свои коды несколько раз. `Ниже мой views.py. Спасибо.
from django.contrib.auth.models import User
from django.shortcuts import render
from django.http import HttpResponse, HttpResponseRedirect
from newapp import forms
from django.contrib.auth import authenticate, login, logout
from django.urls import reverse
from django.contrib.auth.decorators import login_required
def userreg(request):
form = forms.UserInfoForm()
otherform = forms.UserProfileInfoForm()
registered = False
newname = False
if request.method == "POST":
form = forms.UserInfoForm(data=request.POST)
otherform = forms.UserProfileInfoForm(data=request.POST)
if form.is_valid() and otherform.is_valid():
newname = form.cleaned_data.get('first_name')
user = form.save()
user.set_password(user.password)
user.save()
profile_form = otherform.save(commit=False)
profile_form.user = user
if 'profile_pic' in request.FILES:
profile_form.profile_pic = request.FILES['profile_pic']
profile_form.save()
registered = True
return render(request, 'newapp/register.html', context={'form': form, 'otherform':otherform, 'newname':newname, 'registered':registered})
def userlogin(request):
invalidlogin = False
if request.method == "POST":
username = request.POST['username']
password = request.POST['password']
user = authenticate(request, username=username, password=password)
print(user)
if user is not None:
if user.is_active:
login(request,user)
return HttpResponseRedirect(reverse('index'))
else:
return HttpResponse("Sorry Your Account is not active")
else:
invalidlogin = 'OOPS! Your Username or Password is incorrect'
print(f"{username} tried to login with {password}")
return render(request, 'newapp/login.html', context={'invalidlogin': invalidlogin})
else:
return render(request, 'naijadict/login.html')
return render(request, 'newapp/login.html')
@login_required
def userlogout(request):
logout(request)
return HttpResponseRedirect(reverse('index'))