Проверка валидности 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__'
Вернуться на верх