django登录页面中的会话

时间:2013-08-22 13:01:26

标签: python django session error-handling

我有一个代码,每当用户填写登录表单时,我都会有登录表单,而不是表单将呈现给主页。但我想在主页上打印登录用户名。

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 个答案:

答案 0 :(得分:1)

像Joseph建议的那样,您需要将request.user设置为上下文,如:

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

因此,在您的模板中,您可以访问{{ user.username }}

您可以查看有关how to use the auth system of django

的完整文档 希望这可以帮助