title: get_or_create throws Integrity Error
body: <p>Given that the whole point of object.get_or_create() is to get the object if it already exists, I fail to see why it's throwing an integrity error for this code:</p>
  
  <pre><code>class UserAdd(TemplateView):
  
  def post(self, request, *args, **kwargs):
      context = self.get_context_data(*args, **kwargs)
      form = UserAddForm(request.POST)
      if form.is_valid():
          first_name = form.cleaned_data['first_name']
          last_name = form.cleaned_data['last_name']
          myemail = form.cleaned_data['email']
          mypass = form.cleaned_data['password']
          if myemail and mypass:
              myuser,created = User.objects.get_or_create(email=myemail, username=myemail, first_name=first_name, last_name=last_name)
              if created:
                  myuser.set_password(mypass)
      return HttpResponseRedirect('/')
  </code></pre>
  
  <p>Here is the error:</p>
  
  <pre><code>django.db.utils.IntegrityError IntegrityError: (1062, "Duplicate entry 'user@domain.com' for key 'username_UNIQUE'")
  </code></pre>
  
  <p>Anyone know what's going on?</p>