0
回答
django 用这代码def clean_username(self): 去验证用户名字符长度。总是不成功?完整代码如下。大家帮我看看是哪的问题?
利用AWS快速构建适用于生产的无服务器应用程序,免费试用12个月>>>   
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也出错。

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

 

举报
gq2018
发帖于4年前 0回/370阅
顶部