我是django的新手 我有一个render_to_response将用户重定向到好的URL。但是在浏览器中,网址没有改变,所以它被糟糕的视图处理......
这里是
return render_to_response('newworkflow.html/',
{'form':form,},context_instance=RequestContext(request))
这是我的网址:
url(r'newworkflow/$','access_mgmt.views.newworkflowform'),
url(r'newuser/$','access_mgmt.views.newuser'),
一旦在newworkflow.html
我有一个表单,这个表单没有被好视图处理,实际上它处理的是render_to_response。
是否可以使用render_to_response
?
我使用render_to_response因为在(源和目标)上我激活了csrf_token
答案 0 :(得分:3)
HttpResponseRedirect
可用于将客户端重定向到其他网址。
render_to_response
“使用给定的上下文字典呈现给定模板,并返回带有该呈现文本的HttpResponse对象。”
如果客户端要忽略响应的主体并转到其他URL,那么将模板呈现到响应中是没有意义的。
相反,将客户端重定向到适当的URL,然后从与该URL关联的视图中提供呈现的响应。
答案 1 :(得分:0)
你写
是否可以使用
在同一时间更改浏览器中的网址render_to_response
?
我认为你对什么" URL"有太过模糊的理解。实际上是。
如果浏览器要求提供URL X
,它会考虑您发送的任何内容
作为URL X
的响应,无论它是什么。
因此,如果服务器(您!)发送实际的HTML内容,则URL将会发送 永远不要在浏览器中更改。
要在浏览器中更改URL,您需要发送重定向响应
(使用Django' s HttpResponseRedirect
)到浏览器。
浏览器将采用其中包含的URL Y
然后使用URL Y
向服务器发出另一个请求
也显示在浏览器的地址栏中。
然后,服务器将发送Y
的HTML内容。
您不能在一个请求中同时拥有这两个步骤:重定向和发送内容。