У меня длинная форма модели, в основном с проверкой формы модели, и я хотел бы иметь ошибку " Пожалуйста, исправьте ошибки ниже " в верхней части формы, когда какое-либо из отдельных полей не может проверки. Я попытался сделать это, переопределив метод clean в модели, но на данный момент ошибок нет.
# models.py
class MyModel(models.Model):
myfield = models.IntegerField(default=0, validators=[MinValueValidator(0)])
# forms.py
class MyModelForm(forms.ModelForm)
class Meta:
models = MyModel
fields = ['myfield']
def clean(self):
cleaned_data = super().clean()
if any([field.errors for field in self]):
raise forms.ValidationError("Please correct the errors below.")
return cleaned_data
Когда я ввожу недопустимое значение, такое как -1, поле все еще показывает правильное сообщение об ошибке под ним, но в форме нет ошибок.
Я использую {% crispy %}
для визуализации формы, которая автоматически помещает ошибки формы вверху, так что это не проблема шаблона.
Проблема (от отладчика) в том, что в момент вызова clean()
, form['myfield'].errors
пусто.