Django:我怎样才能无形地将变量传递给另一个模板?

时间:2013-07-24 16:28:32

标签: django django-templates

我的项目中有三个模板 - 我们称之为 first.html second.html third.html 。< / p>

first.html 使用<input>标记从用户处获取字符串:

<input type="radio" name="selection" value="example_string" />

second.html 使用{{selection}}显示此字符串。 (在我的 views.py 中,我使用request.POST.getrender_to_response()获得了值。)

问题是:如何将此值从 second.html 发送到 third.html ?我尝试之一 - 使用<span>标记将信息保存在变量中,如下图所示,但它似乎不起作用。

<span name="selection" value={{selection}}>{{selection}}</span>

编辑:以下行通过创建虚拟单一单选按钮来工作。我不知道为什么不能创建没有<input>标签的变量[对用户可见]。

<input type="radio" name="selected" value={{selected}} checked="checked" />

2 个答案:

答案 0 :(得分:5)

您需要了解网络的工作原理:每个网页都是完全独立的,并且是使用单独的请求进行请求的。

您的基本选项是:在客户端保存数据,或将其发回服务器。

可以使用javascript执行这两个选项,也可以通过将表单发布回服务器来执行回发。

如果要将其发送回服务器,则必须将其存储在当前会话或模型中。

有很多javascript库。如果您想使用它们,我建议您围绕这个主题进行谷歌搜索。

答案 1 :(得分:0)

回答我自己的问题,现在我已在Django's documentation找到了答案。

对此有一种特殊的<input>标记:"hidden"。以下行完成了与问题中提到的相同的操作,但没有用户可见的虚拟元素:

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