1

我正在使用以下代码登录,但后来当我导航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

4

2 回答 2

2

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

login(request, user)
于 2012-07-17T14:31:00.397 回答
0

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

  • 您的代码完全被破坏了 - 在login视图中变量uname并且pwd未定义。请发布工作代码。
  • 您似乎自己在进行身份验证 - 为什么不使用内置的身份验证方法?
  • 看起来你的问题的一部分是你用变量定义了一个登录用户,user但它只存在于函数的范围内logon- 你的代码的其余部分正在检查request.user。这就是您需要使用内置身份验证方法的原因。
于 2012-07-17T14:26:58.963 回答