def create_with_username(self, **kwargs):

        password   = kwargs.pop('password', None) or generate_password()

        first_name = kwargs.get('first_name', '')
        last_name  = kwargs.get('last_name', '')

        if not last_name:
            raise ValueError("Must supply at least last name with this method.")

        username = first_name[0] + last_name if first_name else last_name
        username = username.lower()
        username = kwargs.pop('username', username)

        # Check for uniqueness of username:
        username = self.unique_username(username)

        # Create the user with the new values
        kwargs['username'] = username
        student  = self.create(**kwargs)

        # Set the password on the model
        student.set_password(password)
        student.save()

        return student
    def create_user(self, first_name, last_name, email):
        password = generate_password()
        student = Student.objects.create_with_username(
            first_name=first_name.title(), last_name=last_name.title(), email=email.lower(), password=password
        )

        if self.verbosity > 1:
            print student.full_email
            print "U: %s P: %s" % (student.username, password)

        self.count += 1

        return student, password