django的其他POST数据

时间:2012-10-02 21:01:47

标签: django forms post

我正在使用Django,我无法在不修改网址的情况下将变量信息传回服务器。这就是我所拥有的以我想要的方式工作,除了我希望动作是/ foo:

<form method="post" action="/foo/{{ variable }}">
  <input type="submit" value="bar"/>
</form>

当我这样做时,我可以在解析url时轻松获取变量。相反,我想将变量添加到POST QueryDict。这可能吗?

5 个答案:

答案 0 :(得分:5)

是。只需添加其他输入字段:

<form method="post" action="/foo/">
  <input type="hidden" value="{{ variable }}" name="name_of_var">
  <input type="submit" value="bar"/>
</form>

然后您可以通过以下方式访问视图中的变量:

request.POST['name_of_var']

或者您不确定该变量是否存在。这不会引起异常是不存在的。

request.POST.get('name_of_var')

答案 1 :(得分:3)

只需在表单中输入内容:

<input type="hidden" value="{{ variable }}" name="foo" />

然后在视图上:

foo = request.POST.get('foo', None)

另外,我建议您将url tag用于action

答案 2 :(得分:0)

只需添加一个隐藏的输入元素,其中包含您需要的名称和值:

<input type="hidden" name="varname" value="myvalue" />

答案 3 :(得分:0)

你能不把变量变成表格中的输入字段?您可以隐藏它以避免覆盖它。这将在提交中发布数据并实现您想要的效果。

答案 4 :(得分:0)

这不是Django会话框架的用途吗?您可以来回传递数据,而无需通过网址传递数据。

  

会话框架允许您基于每个站点访问者存储和检索任意数据。它在服务器端存储数据并抽象发送和接收cookie。

https://docs.djangoproject.com/en/1.5/topics/http/sessions/