我有一个代码,每当用户填写登录表单时,我都会有登录表单,而不是表单将呈现给主页。但我想在主页上打印登录用户名。
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}}时,它将不会显示会话值。
答案 0 :(得分:1)
像Joseph建议的那样,您需要将request.user设置为上下文,如:
context= {"form": form, "user": request.user}
return render(request, template,context)
因此,在您的模板中,您可以访问{{ user.username }}