title: Modified Django admin clean() method not being invoked
body: <p>I have developed a tool (to be used internally) based on the Django admin site.</p>
  
  <p>I have model validators in place which work brilliantly, but to do more complex validations, I am attempting to overwrite the clean() method in admin.py</p>
  
  <p>My admin.py looks like this:</p>
  
  <p><pre><code>
  from django.contrib import admin
  from .models import Provider, Employer, Person, Learnership, Qualification, Unit_Standard
  from django import forms</p>
  
  <p>class ProviderForm(forms.ModelForm):
      class Meta:
          model = Provider
          fields = '<strong>all</strong>'</p>
  
  <pre><code>    def clean(self):
          provider_start_date = self.cleaned_data.get('provider_start_date')
          provider_end_date = self.cleaned_data.get('provider_end_date')
          if provider_start_date &gt; provider_end_date:
              raise forms.ValidationError("Start date can't be after end date")
          return self.cleaned_data
  </code></pre>
  
  <p>admin.site.register(Provider)
  </pre></code></p>
  
  <p>The models.py for the Provider Model:</p>
  
  <pre><code>
  class Provider(models.Model):
      ... lots of stuff here ...
      provider_start_date = models.DateField()
      provider_end_date = models.DateField(blank=True, null=True)
      ... lots of stuff here ...
  
      def __str__(self):
          return '%s %s' % (self.provider_name, self.provider_code)
  </code></pre>
  
  <p>The problem is that the code displayed in the admin.py doesn't seem to fire, and you can save the record with the end date before the start date.</p>
  
  <p>The Django admin interface is really an amazing feature of the framework, and I think that other people have probably also run into this problem of more advanced validations not being possible, so it would help them as well.</p>