Overriding the clean method in a Django model breaks other validations?
<p>Assume I have a simple model in <code>models.py</code> that is intended to be edited via Django Admin:</p>

<pre><code>class Range(models.Model):
    gt = models.IntegerField('Greater than')
    lt = models.IntegerField('Lesser than')

    def clean(self):
        if self.gt &gt;= self.lt:
            raise ValidationError('Incorrect range')
</code></pre>

<p>The problem: While the above code does a great job in ensuring the assumption that <code>gt</code> is lesser than <code>lt</code>, it also breaks other basic validations that Django provides out-of-the-box. If, for example, I enter some non-numeric data for these fields in Django admin, I am presented with debug messages that span several screens:</p>

<p><a href="https://i.stack.imgur.com/xBiUk.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/xBiUk.png" alt="enter image description here"></a></p>

<p>If I remove the overrided <code>clean(self)</code> method from the definition of <code>Range</code>, this basic validations once again start working properly:</p>

<p><a href="https://i.stack.imgur.com/UH6qe.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/UH6qe.png" alt="enter image description here"></a></p>

<p>But of course, now I can enter <code>Range</code>s with <code>gt</code> greater than <code>lt</code>.</p>

<p>I really don't know what I am doing wrong, since I though I was simply following Django documentation, as per <a href="https://docs.djangoproject.com/en/1.9/ref/models/instances/#validating-objects" rel="nofollow noreferrer">https://docs.djangoproject.com/en/1.9/ref/models/instances/#validating-objects</a></p>

<p>Where is my mistake? How to correctly provide validation for my form?</p>