title: Django allauth override clean_username and clean_email function
body: <p>Hi have created a custom user model and introduced new fields for registration  say for ex: phone and created custom adapter to save the field to database, but at the time of validation. clean_username() is used to check username already exist or not  i need to check phone no for that username. so checking both username and phone no at same time. how can i get the phone no inside clean_username function. the below is the clean_username function in django allauth adapter</p>
  
  <pre><code>def clean_username(self, username, shallow=False):
      """
      Validates the username. You can hook into this if you want to
      (dynamically) restrict what usernames can be chosen.
      """             
  
      if not USERNAME_REGEX.match(username):
          raise forms.ValidationError(_("Usernames can only contain "
                                        "letters, digits and @/./+/-/_."))
  
      # TODO: Add regexp support to USERNAME_BLACKLIST
      username_blacklist_lower = [ub.lower()
                                  for ub in app_settings.USERNAME_BLACKLIST]
      if username.lower() in username_blacklist_lower:
          raise forms.ValidationError(_("Username can not be used. "
                                        "Please use other username."))
      # Skipping database lookups when shallow is True, needed for unique
      # username generation.
      if not shallow:
          username_field = app_settings.USER_MODEL_USERNAME_FIELD
          #appuuid_field = app_settings.USER_MODEL_APPID_FIELD
          assert username_field
          user_model = get_user_model()
          try:
              query = {username_field + '__iexact': username}                
              user_model.objects.get(**query)     
          except user_model.DoesNotExist:
              return username
          raise forms.ValidationError(
              _("This username is already taken. Please choose another."))
      return username
  </code></pre>