Переменная Мако неправильно передана в форме пирамиды - PullRequest
0 голосов
/ 31 марта 2012

У меня есть форма мако, которая включает переменную, которая будет передана в качестве значения для скрытого тега формы.Каким-то образом переменная не передается должным образом.Этот код работал раньше, но теперь сгенерированный 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">

1 Ответ

1 голос
/ 27 июня 2012

Вот что вы можете попробовать, вместо использования ppath везде, вы можете переименовать ppath в вашей функции def в 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.

...