【发布时间】:2012-03-30 22:49:19
【问题描述】:
我有一个 mako 表单,其中包含一个要作为隐藏表单标签的值传入的变量。不知何故,变量没有被正确传递。这段代码之前一直在工作,但现在生成的 html 无法正确呈现值。
魔子代码:
<b>Create model at path</b>: ${ppath}
<%def name="direct_load_model_form(method, ppath)">
${h.tags.form(method, multipart=True, method='post', hidden_fields=[('ppath', ppath)])}
<b>Node Name: </b>${h.tags.text('node_name')}<BR>
<b>Parameters: </b>${h.tags.file('params_file', size=100)}<BR>
${h.tags.submit('submit', 'Create')}
${h.tags.end_form()}
</%def>
${self.direct_load_model_form(process_route, ppath)}
hidden_fields 函数来自网络助手库。在我看来,我正在尝试将ppath 用作ppath = self.request.POST['ppath']。
ppath 变量在第一行中正确呈现,但在作为值传递给隐藏字段时不正确。我需要再次逃避它吗?
这是渲染的 html:
<input type="hidden" value="" name="ppath">
【问题讨论】:
-
我认为问题不在于 Mako。这可能是您使用表单库的方式,您没有在问题中指定。为了帮助您调试,您可以在您的 def 某处尝试
${ppath}。此外,您可以直接编写隐藏输入:<input type="hidden" value="${ppath}" name="ppath">. -
我更新了我的问题。我很确定模板代码以前可以工作。我想我可以直接写隐藏输入,但是当我有多个值时, hidden_fields 是非常方便的方法。我可能会编写自己的方法。
-
您能否提供一个简化版本的视图代码,以便我们了解您实际上是如何将 ppath 传递给模板并说明您使用的是哪个版本的 webhelper?
-
你也可以发布预期的结果吗?