Django使用authenticate()传入email和password获取user一直返回None,
在网上查了好久都没有解决,直到在stackoverflow上面看了一篇帖子:原文链接
原来是Django的authenticate()函数只接受参数为 “用户名,密码”,不接受“邮箱,密码”
正确方式:
(...)
if form.is_valid():
email = form.cleaned_data["email"]
password = form.cleaned_data["password"]
username = User.objects.get(email=email).username
user = auth.authenticate(username=username, password=password)
if user:
(...)