2012-03-30 74 views
0

我有一個mako窗體,其中包含一個變量作爲隱藏窗體標記的值傳入。不知何故,該變量未被正確傳遞。此代碼以前一直在工作,但現在生成的html不能正確呈現值。Mako變量沒有正確傳遞到金字塔形式

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功能是從網絡助手庫。在我看來,我試圖使用ppath作爲ppath = self.request.POST['ppath']

ppath變量在第一行中呈現正確,但在作爲值傳遞給隱藏字段時不會呈現。我需要再次逃脫嗎?

這是呈現的HTML:

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

我不認爲問題在這裏與Mako。這可能是你使用你的表單庫的方式,你沒有在你的問題中指定。爲了幫助你調試,你可以在你的def的某個地方嘗試'$ {ppath}'。此外,您可以直接編寫隱藏的輸入:''。 – 2012-03-31 15:23:49

+0

我更新了我的問題。我很確定模板代碼以前工作過。我想我可以直接寫隱藏的輸入,但是當我有多個值時,hidden_​​fields是非常方便的方法。我可能會寫我自己的方法。 – sutee 2012-04-02 17:18:37

+0

你可以提供視圖代碼的簡化版本,這樣我們可以看到你是如何將ppath傳遞給模板的,並且提到了你正在使用哪個版本的webhelpers? – BenTrofatter 2012-04-13 18:19:46

回答

1

下面是一些你可以嘗試,而不是使用PPATH隨處可見,你可以在你的高清功能,路徑重新命名PPATH。

<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時復位。