title: Django - User pre_save seems called after validation
body: <p>I need to generate a username if none is given when creating or updating a user.</p>
  
  <p>I though about using a <code>pre_save</code> signal</p>
  
  <pre class="lang-python prettyprint-override"><code>@receiver(pre_save, sender=User, dispatch_uid='autocreate_username')
  def create_username(sender, instance, **kwargs):
      if instance.username == None:
          instance.username = generate_random_username()
  </code></pre>
  
  <p>But the user seems to be inserted before the signal call.</p>
  
  <pre class="lang-python prettyprint-override"><code>&gt;&gt;&gt; user = User(email='machin@chouette.com')
  &gt;&gt;&gt; user.save()
  
  Traceback (most recent call last):  
  ...  
  IntegrityError: (1062, "Duplicate entry '' for key 'username'")
  </code></pre>