#31041: Custom validation in the clean method triggers before checking the fields exist or not -----------------------------------------+------------------------ Reporter: tahmidkhan | Owner: nobody Type: Uncategorized | Status: new Component: Uncategorized | Version: 2.2 Severity: Normal | Keywords: Triage Stage: Unreviewed | Has patch: 0 Needs documentation: 0 | Needs tests: 0 Patch needs improvement: 0 | Easy pickings: 0 UI/UX: 0 | -----------------------------------------+------------------------ I have the following code in my models file in Django:
{{{ class MyModel(models.Model): ... foo = models.IntegerField() bar = models.IntegerField() def validate_foo_bar(self): self._validation_errors = {} if self.foo > self.bar: self._validation_errors['foo'] = ['Must be greater than bar.'] self._validation_errors['bar'] = ['Must be less than foo.'] def clean(self): self.validate_foo_bar() if bool(self._validation_errors): raise ValidationError(self._validation_errors) super(MyModel, self).clean() }}} Hopefully the idea is clear. I check for errors in the clean method and raise them if they occur. When I use an admin form to create an object, if I leave the `foo` and `bar` fields empty, I get the following error: {{{ if self.foo > self.bar: TypeError: '>' not supported between instances of 'NoneType' and 'NoneType' }}} Why is this happening? Shouldn't the requirement check trigger before the method I wrote? Thanks for any help. -- Ticket URL: <https://code.djangoproject.com/ticket/31041> Django <https://code.djangoproject.com/> The Web framework for perfectionists with deadlines. -- You received this message because you are subscribed to the Google Groups "Django updates" group. To unsubscribe from this group and stop receiving emails from it, send an email to django-updates+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/django-updates/053.a1501c18149cb421c133fcc2d9f335cc%40djangoproject.com.