我使用以下代码登录,但稍后当我从index.html
导航并尝试访问get_profile()
时,它表示该ID未关联。但是当我打印以下变量时都是假的。我在这里做错了什么?
EDIT
def someotherview(request):
logging.debug(request.user.is_authenticated()) #prints false
logging.debug(request.user.is_active) #prints false
这是登录的方式
def logon(request):
qd = get_request_type(request)
try:
uname = qd.__getitem__('username')
pwd = qd.__getitem__('password')
user = authenticate(username = uname, password = pwd)
if user is not None:
response_dict.update({'yes':1})
logging.debug("labs_home1 ==================")
return render_to_response('home/index.html', context_instance=RequestContext(request, {'response_dict':response_dict,'a':1}))
else:
response_dict.update({'yes':0})
logging.debug("labs_home2 ==================")
return render_to_response('registration/login.html', context_instance=RequestContext(request, {'response_dict':response_dict,'a':1})
另请查看我的问题django get_profile error
答案 0 :(得分:2)
authenticate
仅验证用户名和密码是否正确,并返回找到该对的用户实例。要实际登录用户并使其在模板,会话等中可用,您需要调用login
login(request, user)
答案 1 :(得分:0)
简答:使用内置身份验证。不要试图写你自己的。 https://docs.djangoproject.com/en/dev/topics/auth/
login
视图中,变量uname
和pwd
未定义。请发布工作代码。user
定义登录用户,但只存在于函数logon
的范围内 - 其余代码正在检查request.user
。这就是您需要使用内置身份验证方法的原因。