隠しフォームタグの値として渡される変数を含む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">
私はここのマコに問題はないと思います。おそらく、あなたの質問に明記していないフォームライブラリを使用する方法でしょう。あなたがデバッグするのを助けるために、あなたはどこかのdefで '$ {ppath}'を試すことができます。また、隠れた入力を直接書くこともできます: '' –
私の質問が更新されました。以前はテンプレートコードが正常に動作していたと思います。私は隠れた入力を直接書くかもしれないと思うが、hidden_fieldsは複数の値を持つと便利な方法である。私はおそらく自分の方法を書くだろう。 – sutee
実際にppathをテンプレートに渡している様子と使用しているウェブヘルパーのバージョンを確認できるように、単純化したビューコードを置くことはできますか? – BenTrofatter