【发布时间】:2017-05-03 04:08:45
【问题描述】:
我知道在处理了一个 post 请求后,我们不应该渲染页面,而应该使用 HttpResponseRedirect。我想用这个重定向发回一些数据。我经历了多个 SO,但我有几个问题。
使用消息框架。
很好,直到您只是发送短信。如果我想将对象或字典发送回模板,我应该使用什么?我知道我们可以使用
*args或**kwargs。 当我尝试在 HttpResponseRedirect 中使用 kwargs 时,它抱怨 url 匹配。这是否意味着我需要创建另一个接受 kwargs 的 URL。
让我们在这里看一个例子:-
我正在保存一些我有这个 url 的数据。
url(r'^add-event/$', views.add_event, name='add_event')
在此页面的 GET 请求中,加载模板,显示表单以保存数据。
在此页面的 POST 请求中,表单数据被保存。
现在,如果 POST 请求中一切正常,我可以使用查询字符串或消息框架发送成功消息。但是如果在保存数据时出现一些错误,我想将整个数据发送回模板以将其呈现到表单中,以便用户无需再次填写表单。
我的问题来了。如果我使用如下的 args 或 kwargs:
return HttpResponseRedirect(reverse("tenant:add_event kwargs=data))
其中 data 是包含大量数据的字典(不是简单的文本消息),我如何形成匹配的 url?
是否可以为 GET 和 POST 请求制作一个 URL并处理上述情况?
【问题讨论】:
-
不要尝试在 URL 中传递复杂的数据。使用会话。
-
@DanielRoseman : 如何在模板中使用后删除/取消设置会话中的变量?
-
你在视图中这样做,例如使用
pop。
标签: python django httpresponse