我正在关注django 文档上的示例代码auth
,login()
以了解可以实现登录的各种方式。我知道内置表单和内置视图,最终会使用它们,但我试图理解,而不仅仅是知道。
我遇到的问题是用户在 check_user 中成功登录,但在调用重定向时似乎并没有在会话中持续存在。为什么 is_authenticated() 函数给我的结果不一致?我感觉它与 RequestContext 有关,但我不确定是什么。
def check_user(request):
username = request.POST['username']
password = request.POST['password']
user = authenticate(username=username, password=password)
if user is not None:
if user.is_active:
login(request, user)
test1 = user.is_authenticated() ### True
test2 = request.user.is_authenticated() ### False
return HttpResponseRedirect(NEXT_PAGE) ### NEXT_PAGE gives request.user.is_authenticated() is False
else:
return HttpResponse("disabled account")
else:
return HttpResponse("invalid login")