2012-07-17 395 views
1

我使用以下代码登录,但稍后当我从index.html导航并尝试访问get_profile()时,它表示该ID未关联。但是,当我打印下面的变量都是错误的。我在这里做错了什么?Django用户验证错误

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

您的用户来自哪里?有登录表单吗? uname和pwd来自哪里? – Jingo 2012-07-17 14:26:00

+0

uname和pwd来源于html模板。并且输入来自表格 – Rajeev 2012-07-17 14:28:33

回答

2

authenticate只验证用户名和密码是否正确,并返回为该对找到的用户实例。要实际登录用户并使其可用于模板,会话等,您需要致电login

login(request, user) 
+0

中的编辑是的,因为您看到我没有使用登录功能..感谢此问题解决了问题 – Rajeev 2012-07-17 14:39:03

0

简短的回答:使用内置的身份验证。不要试图写你自己的。 https://docs.djangoproject.com/en/dev/topics/auth/

  • 你的代码是完全打破 - 在login查看变量unamepwd是不确定的。请发布工作代码。
  • 你似乎在自己做认证 - 你为什么不使用内置的认证方法?
  • 它看起来像你的问题的一部分是,你定义一个登录用户变量user,但只存在于功能logon范围 - 其余的代码是检查request.user。这就是您需要使用内置身份验证方法的原因。
+0

请看代码 – Rajeev 2012-07-17 14:32:15