Python 如果通过前端注册表进行注册,Django Authenticate将返回none
我到处寻找这个问题的解决办法。然而,到目前为止还没有决议 问题 通过前端注册表单成功创建用户后,使用前端登录表单登录时,“Authenticate”函数返回“None” 有趣的是,如果我要通过管理面板(使用类似的代码)创建一个新用户,那么我就可以通过前端登录表单登录 我创建的自定义用户模型使用电子邮件地址作为用户名。如果用户使用前端注册表表单进行注册,则用户详细信息将保存到数据库中,并在数据库中正确散列密码 代码如下:Python 如果通过前端注册表进行注册,Django Authenticate将返回none,python,django,Python,Django,我到处寻找这个问题的解决办法。然而,到目前为止还没有决议 问题 通过前端注册表单成功创建用户后,使用前端登录表单登录时,“Authenticate”函数返回“None” 有趣的是,如果我要通过管理面板(使用类似的代码)创建一个新用户,那么我就可以通过前端登录表单登录 我创建的自定义用户模型使用电子邮件地址作为用户名。如果用户使用前端注册表表单进行注册,则用户详细信息将保存到数据库中,并在数据库中正确散列密码 代码如下: member.set_password(request.POST.get('
member.set_password(request.POST.get('password1'))
来自Forms.py
从Views.py
我现在不知所措。可能需要一些指导或建议。好的,我已经解决了这个问题。好像我只需要睡一觉 以下是导致问题的代码: In Views.py 似乎它正在设置密码的哈希版本。但是“set_password”必须是密码的原始版本 要解决此问题,我将其更改为:
member.set_password(request.POST.get('password1'))
瞧,它起作用了 我认为问题出在注册视图中,替换这一行“member=registration.save()”并将其改为“member=registration.save(commit=False)”Brian,感谢您的回复。将commit参数更改为False似乎无法解决此问题。我当然非常感谢你在这件事上的意见。话虽如此,只是想澄清一下,在用户登录视图中“user=authenticate(username=username,password=password)”似乎返回“none”。我猜这可能与我正在使用自定义用户模型这一事实有关。但我现在不是100%确定。好吧,为什么不使用django用户模型呢?Brian,这是一个很好的问题!Django提供的默认用户模型不允许我完成正在构建的web应用程序的目标。诚然,Django提供了一些基于用户的现成功能,但在这种情况下,它是不够的。你能解释一下为什么它不够吗?通常,当您需要用户模型中的更多数据时,通常创建一个与用户相关的概要文件模型,或者一个从django用户模型继承的自定义用户模型。Jaja好的,没关系,我不记得了。。。太好了,你自己回答了
member.set_password(member.password)
member.set_password(request.POST.get('password1'))