我正在使用Django,我无法在不修改网址的情况下将变量信息传回服务器。这就是我所拥有的以我想要的方式工作,除了我希望动作是/ foo:
<form method="post" action="/foo/{{ variable }}">
<input type="submit" value="bar"/>
</form>
当我这样做时,我可以在解析url时轻松获取变量。相反,我想将变量添加到POST QueryDict。这可能吗?
答案 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。