Django 开发拓展 auth 模块,注册用户时发生 ValueError: The given username must be set
程序员文章站
2023-12-26 17:45:45
原因 使用局部钩子函数 对 username、email 字段进行验证时,未返回,具体请参考 函数源码。 解决 局部钩子函数一定要记得带上返回值,全局钩子函数也是一样: ......
原因
使用局部钩子函数 _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