Почему я получаю ошибку валидации, даже если ввод в форму правильный
Я изучал Django form validation на каком-то онлайн ресурсе, работал над валидацией формы, создал ошибку валидации, изображающую условие и передал ее в поле формы, но ошибка валидации поднимается даже если я ввожу правильные данные. Подобное произошло, когда я создал ошибку валидации для botcatcher без использования валидаторов, ошибка не возникала, даже если я вводил данные через inspect (его код закомментирован), помогите мне!
forms.py
from django import forms
from django.core import validators
def check_name(value):
if value[0].lower() != 'K':
raise forms.ValidationError('Name should start with K')
class FormName(forms.Form):
name = forms.CharField(validators=[check_name])
email = forms.EmailField()
text = forms.CharField(widget=forms.Textarea)
botcatcher = forms.CharField(required=False,
widget=forms.HiddenInput,
validators=[validators.MaxLengthValidator(0)])
# def cleaned_botcatcher(self):
# botcatcher = self.cleaned_data['botcatcher']
# if len(botcatcher) > 0:
# raise forms.ValidationError('CAUGHT THE BOT')
# return botcatcher
[webpage for same][1]
views.py
from django.shortcuts import render
from . import forms
# we can also use from basicapp import forms . refers to current directory
# Create your views here.
def index(request):
return render(request, 'basicapp/index.html')
def form_name_view(request):
form = forms.FormName()
if request.method == 'POST':
form = forms.FormName(request.POST)
if form.is_valid():
# DO something
print("VALIDATION SUCCESS , POSTED")
# Retreiving posted data
print("NAME: " + form.cleaned_data["name"])
print("EMAIL: " + form.cleaned_data["email"])
print("TEXT: " + form.cleaned_data["text"])
return render(request, 'basicapp/form_page.html', {'form': form})
Я допустил ошибку в функции валидатора check_name там я использовал нижний регистр, но я проверяю с верхним регистром 'K', что приводит к несовпадению.
def check_name(value):
if value[0].lower() != 'k':
raise forms.ValidationError('Name should start with k')
Но все же мне нужна помощь относительно валидатора botcatcher, который не выдавал ошибку, даже когда должен был.