我是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()
方法。