欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Django 开发拓展 auth 模块,注册用户时发生 ValueError: The given username must be set

程序员文章站 2023-12-26 17:45:45
原因 使用局部钩子函数 对 username、email 字段进行验证时,未返回,具体请参考 函数源码。 解决 局部钩子函数一定要记得带上返回值,全局钩子函数也是一样: ......

Django 开发拓展 auth 模块,注册用户时发生 ValueError: The given username must be set

原因

使用局部钩子函数 _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

上一篇:

下一篇: