2012-07-17 125 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