Mako变量没有正确传递到金字塔形式

时间:2012-03-30 22:49:20

标签: python pyramid mako

我有一个mako表单,其中包含一个要作为隐藏表单标记的值传入的变量。不知何故,变量没有正确传递。此代码以前一直在工作,但现在生成的html没有正确呈现值。

Mako代码:

<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函数来自Web帮助程序库。在我的观看中,我尝试将ppath用作ppath = self.request.POST['ppath']

ppath变量在第一行中正确呈现,但在作为隐藏字段的值传递时则不会。我需要再次逃避它吗?

这是呈现的html:

<input type="hidden" value="" name="ppath">

1 个答案:

答案 0 :(得分:1)

这是您可以尝试的内容,而不是在任何地方使用ppath,您可以将def函数中的ppath重命名为path。

<b>Create model at path</b>: ${ppath}

<%def name="direct_load_model_form(method, path)">
   ${h.tags.form(method, multipart=True, method='post', hidden_fields=[('ppath', path)])}
   <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)}

这可能是一个问题,但由于mako创建了python代码,因此可能在某处,发送到您的函数的参数被覆盖。那说不清楚它将使用哪个变量,因为defs可以访问全局变量,但你在调用def时重置。