code: def generate_username_and_redirect(self, request, user, profile, client):
          
          func = self.get_username_function()
          
          user.username = func(user, profile, client)
          user.set_unusable_password()
          user.save()
          
          profile.user = user
          profile.save()
          
          user = profile.authenticate()
          
          self.send_connect_signal(request, user, profile, client)
          
          self.login(request, user)
          
          self.send_login_signal(request, user, profile, client)
          
          self.delete_session_data(request)
          
          return HttpResponseRedirect(self.get_next(request))
docs: Generate a username and then redirect the user to the correct place.
          This method is called when ``SOCIALREGISTRATION_GENERATE_USERNAME`` 
          is set. 
  
          :param request: The current request object
          :param user: The unsaved user object
          :param profile: The unsaved profile object
          :param client: The API client