django 用这代码def clean_username(self): 去验证用户名字符长度。总是不成功?完整代码如下。大家帮小弟我看看是哪的有关问题

django 用这代码def clean_username(self): 去验证用户名字符长度。总是不成功?完整代码如下。大家帮我看看是哪的问题?
    def clean_username(self):
        username = self.cleaned_data['username']
        num_words = len(username.split())
        if not re.search(r'^\w+$', username, re.U):
            raise forms.ValidationError('用户名有问题,不能注册。字符太少或含用奇怪字符!')
        if num_words < 4:
            raise forms.ValidationError('用户名不能少于四个字符!')
        return username
        try:
            User.objects.get(username=username)
        except ObjectDoesNotExist:
            return username
        raise forms.ValidationError('用户名存在,请修改后注册.')


我现在的想法是它能实现这样的功能: 

1.验证用户名中的字符问题 

2.验证用户名字符长度问题 

3.验证用户注册信箱是不是已被用过 

4.验证用户名是不是被注册过。 

现在1 , 3 , 4都可以实验 

我现在加上2 验证用户名字符长度问题后。就坏了。 

我知道问题之一是 if num_words < 4:
这后面 return username 后。后面的就不再执行了。 

但是我不加这句 如果用户名长度大于4就会出错。不大于4也出错。 

这样的功能应该怎么实现好呢? 

------解决方案--------------------
len(username.split())->len(username)