django render_to_response重定向到另一个视图

时间:2013-03-07 16:24:53

标签: python django django-views

我是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

2 个答案:

答案 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内容。 您不能在一个请求中同时拥有这两个步骤:重定向发送内容。