如何在django中只使用一个url模式来处理HttpResponseRedirect中的GET,POST和kwargs?

时间:2016-12-17 15:13:59

标签: python django httpresponse

我知道在处理帖子请求后我们不应该呈现页面但应该使用HttpResponseRedirect。我想用这个重定向发回一些数据。我经历了多次,但我几乎没有问题。

  • 使用消息框架。
    好,直到你发送短信。如果我想将对象或词典发送回模板,我应该使用什么?

  • 我知道我们可以使用*args**kwargs。 当我试图在HttpResponseRedirect中使用kwargs时,它会抱怨url匹配。这是否意味着我需要创建另一个接受kwargs的URL。

让我们看一个例子: - 我正在保存一些我有这个网址的数据。

url(r'^add-event/$', views.add_event, name='add_event')

在此页面的GET请求中,加载了模板,其中显示了保存数据的格式 在此页面的POST请求中,保存表单数据 现在如果在POST请求中一切正常,我可以使用查询字符串或消息框架发回成功消息。但是如果在保存数据时出现了一些错误,我想将整个数据发送回模板,将其呈现为表单,以便用户无需再次填写表单。

这是我的问题。如果我使用下面的args或kwargs:

return HttpResponseRedirect(reverse("tenant:add_event kwargs=data))

其中数据是包含大量数据的字典(不是简单的文本消息),如何形成匹配的网址?

是否可以为GET和POST请求设置一个网址并处理上述情况?

1 个答案:

答案 0 :(得分:0)

关于你关于消息框架的问题,请看一下这里描述如何使用消息框架传递字典的question

您还可以使用django会话framework将POST数据保存在会话中。这样,重定向页面就可以访问Http POST提交的数据。