Проверка валидности Django Forms не работает
Я даю это правило валидации в моих формах django, поэтому, когда поле не является таковым, оно выдает ошибку валидации, но валидация происходит каждый раз, я имею в виду, когда поле не является таковым или не является таковым, я получаю ошибку валидации каждый раз, Как мне решить эту проблему. models.py
class Check(models.Model):
use_for_car = models.BooleanField(default=False)
Forms.py
class CheckForm(forms.ModelForm):
translated_names = TranslationField()
def clean(self):
cleaned_data = super(CheckForm, self).clean()
use_for_car = self.cleaned_data.get("use_for_car")
if use_for_car is None:
raise ValidationError("Use For Car NEED TO BE FILLED ")
return use_for_registrations
class Meta:
fields = "__all__"
model = models.Check
This is already the case, since you did not specify blank=True
[Django-doc], this means that the form field is required, so this means that for the form field, required=True
[Django-doc], and for a BooleanField
form field [Django-doc], this means:
Поскольку все подклассы Field по умолчанию имеют
required=True
, условие проверки здесь очень важно. Если вы хотите включить в форму булево значение, которое может быть либоTrue
, либоFalse
(например, установленный или не установленный флажок), вы должны не забыть передатьrequired=False
при созданииBooleanField
.
Таким образом, вы можете просто позволить Django сделать работу:
class CheckForm(forms.ModelForm):
translated_names = TranslationField()
# no clean override
class Meta:
model = models.Check
fields = '__all__'