如何将HttpResponseRedirect和render\u-to\u响应结合起来?

2024-03-29 10:40:54 发布

您现在位置:Python中文网/ 问答频道 /正文

当用户登录时,HttpResponseRedirect会将其重定向到“/welcome/”url。但是我还想返回下面注释掉的语句,因为我还想将字典传递给模板。请帮助我找到一种方法来组合这两个语句或任何其他解决方案。你知道吗

你知道吗视图.py你知道吗

   def home(request):
        templatename="login.html"
        if request.method=="POST":
            u=request.POST.get("username")     
            p=request.POST.get("password")
            user=authenticate(username=u, password=p)
            if user is not None:
                if user.is_active:
                    print "This User is valid, active and authenticated"
                    login(request,user)
                    state = "You're successfully logged in!"
                    return HttpResponseRedirect("/welcome/")
                    #return render_to_response(templatename,{'state':state, 'user':user}, context_instance=RequestContext(request))


                else:
                    print "This User is valid but the account has been disabled"
                    state="This User is valid but the account has been disabled"

            else:
                print "The Username and Password entered were incorrect"
                state = "Your username and/or password were incorrect."
                #return render_to_response(templatename,{'state':state, 'user':user}, context_instance=RequestContext(request))

        else:
            user=None
            state=None

        return render_to_response(templatename, {'state':state, 'user':user}, context_instance=RequestContext(request))

Tags: nonereturnifisrequestusernamepasswordthis
1条回答
网友
1楼 · 发布于 2024-03-29 10:40:54

你可以使用消息框架。。from django.contrib import messages

视图.py

messages.success(request, "You're successfully logged in!")
return HttpResponseRedirect("/welcome/")

另一个选择就是使用session。!但在会话中,您将找到隐藏消息的方法,然后显示。。。你知道吗

#views.py
request.session['state'] = "You're successfully logged in!"
HttpResponseRedirect("/welcome/")
#html
{{ request.session.state }}

相关问题 更多 >