如何从HttpResponseRedirect django发送警报消息

时间:2013-07-02 19:00:07

标签: python django twitter-bootstrap

我在bootstrap模式中有一个表单。 当用户提交此表单时,它会向网址发送一个帖子请求(/ submitform), / submitform的视图对数据做了一些事情(重新排列) 并对另一个网址执行“requests.post”。 现在取决于第二个帖子请求成功或失败。我想在HttpResponseRedirect网址上显示提醒。

这是代码:

payload= {"createRequest":
                  { "users": request.POST["newuser"],
                    "email": request.POST["newemail"]
                    }
                  }
headers =  {'content-type' : 'application/json'}
r = requests.post('http://localhost:8000/api/v1.0/newuser',
                          data=json.dumps(payload),
                          headers=headers, verify=False)

return HttpResponseRedirect("/dashboard/all_users", {"alert":r.content})

并且在all_users的视图中,它检查警报是否存在(因为all_users已经从其他几个警报不在其中的地方调用),如果存在警报,则将其从render_to_respons发送到html。

我无法更改all_users url格式,它已在很多地方使用过。 如果需要更多说明,请告诉我。

我尝试过的事情:

return HttpResponseRedirect(reverse("/dashboard/all_users"), kwargs={"alert":r.content})

错误:

  

使用参数'()'和关键字反转'/ dashboard / all_users'   没有找到参数“{}”。

1 个答案:

答案 0 :(得分:2)

在您的模板中,您可以执行以下操作:

<script type="text/javascript">
 $(function(){
   {% if alert %}
      //whatever conditions and js code
      alert('{{alert}}');
   {% endif %}
 });
</script>

在视图中,使用redirect代替HttpResponseRedirect

return redirect(reverse("/dashboard/all_users"), {"alert":r.content})