2013-08-22 113 views
0

我有一個代碼,我有登錄表單,只要用戶填寫登錄表單而不是表單將呈現給主頁。但我想到底是誰在登錄首頁打印用戶名在django登錄頁面的會話

views.py:

這是登錄功能,當用戶填寫登錄表單比驗證值和渲染到主頁。

def userLogin(request,template=None,context=None): 
    if request.user.is_authenticated(): 
     return HttpResponseRedirect('/home/') 
    if request.method == 'POST': 
     form = userLoginform(request.POST) 
     if form.is_valid(): 
#   authenticated_user = form.save() 
#   login(request, authenticated_user) 
      return HttpResponseRedirect("/home/") 
     else: 
      template=u"registration/login.html" 
      context= {"form": form} 
      return render(request, template,context) 
    else: 
     form=userLoginform() 
     template=u"registration/login.html" 
     context= {"form": form} 
    return render(request, template,context) 

每當我使用此代碼,用戶登錄正常,但會話值不工作,當我用{{user.username}}在首頁,那麼它不會顯示會話值。

+1

這將是有益的張貼是關係到homepa視圖代碼ge ...但是,請嘗試{{request.user.username}},除非您在上下文字典中以用戶身份傳遞request.user。 –

+1

@JosephPaetz能夠在模板中使用'request.user.username',他將需要添加''django.core.context_processors.request''到他的設置 – 2013-08-22 14:25:08

回答

1

像約瑟夫建議您需要將request.user設爲像背景:

context= {"form": form, "user": request.user} 
    return render(request, template,context) 

從而在你的模板,你會比布爾訪問{{ user.username }}

你可以看看完整的DOC約how to use the auth system of django

希望能幫助

+0

它不起作用 –

+0

你能告訴我們模板和更新你的視圖代碼來檢查?因爲就像這樣,我們都從視圖中爲模板賦予了值 – 2013-08-23 06:49:05