Django 开发拓展 auth 模块,

发布时间:2019-05-19 23:27:56编辑:auto阅读(2061)

    原因

    使用局部钩子函数 _clean_fields() 对 username、email 字段进行验证时,未返回,具体请参考 _clean_fields() 函数源码。

    def clean_username(self):
        """
        验证用户名是否被注册
        :return:
        """
        username = self.cleaned_data.get('username')
        user_obj = UserInfo.objects.filter(username=username).count()
        if user_obj:
            raise ValidationError('用户名已存在')

    解决

    局部钩子函数一定要记得带上返回值,全局钩子函数也是一样:

    def clean_username(self):
        """
        验证用户名是否被注册
        :return:
        """
        username = self.cleaned_data.get('username')
        user_obj = UserInfo.objects.filter(username=username).count()
        if user_obj:
            raise ValidationError('用户名已存在'
        return username

关键字

上一篇: python 【枚举】

下一篇: 1