2011-09-26 150 views
1

喜後會在Django是比較新的Django的,已經使得大部分的東西穩步進展,但我是應會議部分被卡住。 我從我的登錄視圖登錄後,它成功並重定向到指向另一個視圖的下一個鏈接。這是問題發生的地方,request.user只是返回一個空對象,我的用戶沒有檢測到登錄。 我嘗試了google搜索,閱讀官方Django的教程,但不能拿出任何東西,任何人都可以看看我的代碼看看我做錯了什麼?我也看着我的數據庫,似乎django正確地存儲會話在我的數據庫,這可能是錯誤的餅乾?問題與登錄

以下是我的2個簡單的意見。

高清mylogin(請求):

def errorHandle(error): 
    form = LoginForm() 
    return render_to_response('login/login.html', { 
              'error' : error, 
              'form' : form, 
    }) 
if request.method == 'POST': # If the form has been submitted... 
    form = LoginForm(request.POST) # A form bound to the POST data 
    if form.is_valid(): # All validation rules pass 
     username1 = request.POST['username'] 
     password1 = request.POST['password'] 
     u = User.objects.get(username=username1) 
     user = authenticate(username=username1, password=password1) 
     if user is not None: 
      if user.is_active: 
       # Redirect to a success page. 
       login(request, user) 
       username1 = user.last_name + " " + user.first_name    
       return HttpResponseRedirect("../portal/") 
       #return render_to_response('login/logged_in.html', { 
       # 'username': username1, 
       #},RequestContext(request)) 
      else: 
       # Return a 'disabled account' error message 
       error = u'account disabled' 
       return errorHandle(error) 
     else: 
      # Return an 'invalid login' error message. 
      error = u'invalid login' 
      return errorHandle(error) 
    else: 
     error = u'form is invalid' 
     return errorHandle(error) 
else: 
    form = LoginForm() # An unbound form 
    return render_to_response('login/login.html', { 
     'form': form, 
    }) 

高清mytest的(要求):

request.user.username 
return render_to_response('login/logged_in.html', { 
        'username': username1, 
}) 

回答

1

我覺得你不必要的重複發明輪子 - 這一切繁重的工作已經完成。我強烈建議爲此使用django-registration,可能與django-profiles一起使用。文檔有點抽象,但寫得非常好,非常靈活。如果沒有它,我永遠不會部署Django站點,也不會處理像這樣的問題。

+0

即使沒有註冊或配置文件,Django的用戶登錄開箱即用,因此不需要重寫它。 –

+0

嗯,我只是想用django文檔試圖理解事情是如何工作的,因爲這是網站上給出的(幾乎)。謝謝無論如何,我會嘗試註冊 –

+0

嗯,我不是真的寫我自己的登錄,我只是生成用戶登錄表單,因爲你可以看到我實際上使用django的身份驗證和用戶登錄在我的表單,它只是困惑我爲什麼在我用這個表單登錄後沒有會話。此外,我並不真正想做任何註冊,我只是想從用戶的簡單登錄,以查看網站上的某些內容。 –