django.contrib.auth login()返回None问题



我是django的新手,我一直在尝试为我的django项目实现登录系统。


template_name = 'rest_framework/login.html'
if request.method == 'POST':
email = request.POST['username']
password = request.POST['password']
user = authenticate(request, username=email, password=password)
print (login(request,user))
login(request,user)
return redirect('core:home')
return render(request, template_name)

出于某种原因,我从django.contrib.auth导入的登录函数返回None,即使用户在身份验证后有正确的用户对象,并且请求有POST请求对象。这导致用户无法添加到会话中,因此当我将其重定向到core:home时,我会在request.user中获得AnonymousUser。请提供帮助。

PS:我已经为身份验证编写了一个自定义后端。

实际上login()方法没有返回类型。之前必须检查authenticate()方法的结果。如果身份验证失败,authenticate()方法将返回None。在这种情况下,意味着没有提供用户名和密码的用户。所以若authenticate()的结果为None,则可以发出警告,并且不要调用login()方法。

最新更新