Проблемы со входом в систему Django
Я могу зарегистрировать нового пользователя. Но после выхода из системы я не могу снова войти в систему. Но когда я проверил панель администратора, я получил хэшированный пароль.....
forms.py
class UserLoginForm(forms.Form):
email = forms.EmailField()
password = forms.CharField(widget=forms.PasswordInput)
def clean(self, *args, **kwargs):
email = self.cleaned_data.get("email")
password = self.cleaned_data.get("password")
if email and password:
user = authenticate(email=email, password=password)
if not user:
raise forms.ValidationError("User Does Not Exist.")
if not user.check_password(password):
raise forms.ValidationError("Password Does not Match.")
if not user.is_active:
raise forms.ValidationError("User is not Active.")
return super(UserLoginForm, self).clean(*args, **kwargs)
views.py
def login_view(request): # users will login with their Email & Password
if request.user.is_authenticated:
return redirect("/")
else:
title = "Login"
form = UserLoginForm(request.POST or None)
if form.is_valid():
email = form.cleaned_data.get("email")
password = form.cleaned_data.get("password")
# authenticates with Email & Password
user = authenticate(email=email, password=password)
login(request, user)
return redirect("/")
context = {"form": form,
"title": title
}
return render(request, "accounts/login.html", context)
Я могу зарегистрировать нового пользователя. Но после выхода из системы, я не могу войти снова. Но когда я проверил панель администратора, я получил хэшированный пароль..... models.py
class Profile(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
avatar = models.CharField(max_length=500, null=True)
about = models.CharField(max_length=1000, null=True)
slogan = models.CharField(max_length=500, null=True)
def __str__(self):
return self.user.username
class Gig(models.Model):
CATEGORY_CHOICES = (
("GD", "Graphics & Design"),
("DM", "Digital & Marketing"),
("VA", "Video & Animation"),
("MA", "Music & Audio"),
("PT", "Programming & Tech")
)
title = models.CharField(max_length=500)
category = models.CharField(max_length=2, choices=CATEGORY_CHOICES)
description = models.CharField(max_length=1000)
price = models.IntegerField(default=6)
photo = models.FileField(upload_to='gigs')
status = models.BooleanField(default=True)
user = models.ForeignKey(User, on_delete=models.CASCADE)
create_time = models.DateTimeField(default=timezone.now)
def __str__(self):
return self.title
class Purchase(models.Model):
gig = models.ForeignKey(Gig, on_delete=models.CASCADE)
buyer = models.ForeignKey(User, on_delete=models.CASCADE)
time = models.DateTimeField(default=timezone.now)
def __str__(self):
return self.gig.title
class Review(models.Model):
gig = models.ForeignKey(Gig, on_delete=models.CASCADE)
user = models.ForeignKey(User, on_delete=models.CASCADE)
content = models.CharField(max_length=500)
def __str__(self):
return self.content
Я могу зарегистрировать нового пользователя. Но после выхода из системы я не могу снова войти в систему. Но когда я проверил панель администратора, я получил хэшированный пароль.....
регистрационный просмотр.....
def register_view(request): # Creates a New Account & login New users
if request.user.is_authenticated:
return redirect("/")
else:
title = "Register"
form = UserRegistrationForm(request.POST or None, request.FILES or None)
if form.is_valid():
user = form.save(commit=False)
password = form.cleaned_data.get("password1")
user.set_password(password)
user.save()
prof = Profile(user=user)
prof.save()
authenticate(email=user.email, password=password)
login(request, user)
return redirect("/")
context = {"title": title, "form": form}
return render(request, "accounts/form.html", context)
def logout_view(request): # logs out the logged in users
if not request.user.is_authenticated:
return redirect("login")
else:
logout(request)
return redirect("/")