簡體   English   中英

django登錄頁面中的會話

[英]session in login page in 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}}時,它將不顯示會話值。

像約瑟夫建議的那樣,您需要將request.user設置為上下文:

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

因此,您可以在模板中訪問{{ user.username }}

您可以查看有關如何使用django的身份驗證系統的完整文檔

希望這可以幫助

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM