title: super() save method on Django auth user's user change form
body: <p>I am trying to edit <code>django.contrib.auth.forms.UserChangeForm</code>. Basically, auth_user's user edit page.</p>
  <p><a href="https://github.com/django/django/blob/master/django/contrib/auth/forms.py" rel="nofollow noreferrer">https://github.com/django/django/blob/master/django/contrib/auth/forms.py</a></p>
  <p>According to source code, the form does not have a <code>save()</code> method, so it should inherit from <code>forms.ModelForm</code> right?</p>
  <p>For full code, <a href="http://pastebin.com/ugbf7yek" rel="nofollow noreferrer">see here</a></p>
  <pre><code>class MyUserAdminForm(forms.ModelForm):
      class Meta:
          model = User
  
      def __init__(self, *args, **kwargs):
          super(MyUserAdminForm, self).__init__(*args, **kwargs)
          instance = getattr(self, 'instance', None)
          if instance and instance.id: # username and user id
              ... the rest of the __init__ is setting readonly fields
  
      .... some clean methods .....
  
      def save(self, *args, **kwargs):
          kwargs['commit'] = True
          user = super(MyUserAdminForm, self).save(*args, **kwargs)
          print user.username
          print 'done'
          return user
  </code></pre>
  <p>When I hit save, it said <code>'UserForm' object has no attribute 'save_m2m'</code>. I've googled quite a bit, and tried to use <code>add()</code> but didn't work. What's causing this behaviour?</p>
  <p>The thing is: the two <code>print</code> statements are printed. But the value never saved into database. I thought that the 2nd line would have saved once already.</p>
  <p>Thanks</p>