我正在关注auth
函数login()
的django文档上的sample code,以了解可以实现登录的各种方法。我知道built-in forms和built-in views,最终会最终使用它们,但我想理解,而不仅仅是知道。
我遇到的问题是用户在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")