Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如果通过前端注册表进行注册,Django Authenticate将返回none_Python_Django - Fatal编程技术网

Python 如果通过前端注册表进行注册,Django Authenticate将返回none

Python 如果通过前端注册表进行注册,Django Authenticate将返回none,python,django,Python,Django,我到处寻找这个问题的解决办法。然而,到目前为止还没有决议 问题 通过前端注册表单成功创建用户后,使用前端登录表单登录时,“Authenticate”函数返回“None” 有趣的是,如果我要通过管理面板(使用类似的代码)创建一个新用户,那么我就可以通过前端登录表单登录 我创建的自定义用户模型使用电子邮件地址作为用户名。如果用户使用前端注册表表单进行注册,则用户详细信息将保存到数据库中,并在数据库中正确散列密码 代码如下: member.set_password(request.POST.get('

我到处寻找这个问题的解决办法。然而,到目前为止还没有决议

问题 通过前端注册表单成功创建用户后,使用前端登录表单登录时,“Authenticate”函数返回“None”

有趣的是,如果我要通过管理面板(使用类似的代码)创建一个新用户,那么我就可以通过前端登录表单登录

我创建的自定义用户模型使用电子邮件地址作为用户名。如果用户使用前端注册表表单进行注册,则用户详细信息将保存到数据库中,并在数据库中正确散列密码

代码如下:

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'))