Ahmed Yasin Ответов: 0

Как я могу показать validationerror?


Ну, я использую django 3.0.3 и python 3.8.5..
ValidationError не вызывает ошибки, даже если я ввожу разные электронные письма...
Я перепробовал так много возможных способов вызвать ошибку, но ни один из них не работает..

Что я уже пробовал:

------forms.py-------

 class FormName(forms.Form):
        name = forms.CharField( required=True)
        email = forms.EmailField( required=True)
        vmail  = forms.EmailField( required=True)
        text = forms.CharField(widget = forms.Textarea)
    
    
    
    def clean(value):
        cleaned_data = super().clean()
        name = cleaned_data.get("name")
        email = cleaned_data.get("email")
        vmail = cleaned_data.get("vmail")
    
        if email != vmail:
            raise ValidationError("Emails are not match")

--------views.py-----

    def forms_web(request):
        forming = forms.FormName()
        if request.method == 'POST':
            forming = forms.FormName(request.POST)
    
            if forming.is_valid():
                print("VALIDATION SUCCESS!")
                print("NAME :" +forming.cleaned_data['name'])
                print("EMAIL :" +forming.cleaned_data['email'])
                print("VMAIL :" +forming.cleaned_data['vmail'])
                print("TEXT :" +forming.cleaned_data['text'])
        
        return render(request ,'django_App/forms.html',{'form':forming})

Richard MacCutchan

Без данных, с которыми вы работаете, это невозможно сказать. Используйте отладчик, чтобы узнать, что происходит, когда вы выполняете сравнение двух электронных писем. Я Алос заметил следующие две строчки:

email = forms.EmailField( required=True)
vmail  = forms.EmailField( required=True)

Правильно ли, что они оба относятся к одному и тому же элементу формы?

0 Ответов