@kyklaed

Не проверяет пароли, в чем проблема?

Привет , у меня есть форма и есть вьюха. не получается проверить пароль при регистрации.
при вводе в форму имейла и паролей 1234567890 и 0987654321, должно бы показать сообщение о том что пароли не совпадают но вместо этого юзер сохраняется в бд с первым паролем ( 1234567890), но проверка уникальности имейла работает нормально ! почему так? подскажите

вот что получаю через принт из формы

f 21@j.ru
password1 = None
password1 = None
return p2 0987654321
return p1 None
view pass = 1234567890

class RegisterForm(forms.ModelForm):
    password = forms.CharField(widget=forms.PasswordInput,min_length=10)
    password2 = forms.CharField(label='Confirm password', widget=forms.PasswordInput,min_length=10)

    class Meta:
        model = User
        fields = ('email',)


    def clean_email(self):
        email = self.cleaned_data.get('email')
        print("f ",email)
        qs = User.objects.filter(email=email)
        if qs.exists():
            print("Exi ", email)
            raise forms.ValidationError("email is taken")
        return email

    def clean_password2(self):
        # Check that the two password entries match
        password1 = self.cleaned_data.get("password1")
        print("password1 = ", password1)
        password2 = self.cleaned_data.get("password2")
        print("password1 = ", password1)
        if password1 and password2 and password1 != password2:
            raise forms.ValidationError("Passwords don't match")
        print("return p2",password2)
        print("return p1 ", password1)
        return password2


def registration(request):
    title="Registration"
    user = User()
    form = RegisterForm(request.POST or None)#UserRegistrationForm(request.POST or None)
    if form.is_valid():
        user.email = form.cleaned_data['email']
        user.password=form.cleaned_data['password']
        print("view pass = ",user.password)
        user = User.objects.create_user(user.email,user.password)
        #user = User.objects.create_superuser(user.email, user.password)
        user.save()

        return redirect('index')

    return render(request, "accounts/form.html", {"form": form, "title": title})
  • Вопрос задан
  • 67 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы