Я пытаюсь использовать HTMLFill для заполнения формы значениями по умолчанию. У меня есть функция, которая использует декоратор @view_config и генерирует форму в мако.
@view_config(renderer="templates/derived/new/model.mak", route_name='new_model_route')
def new_model(self, fparams=None):
defaults = {'node_name': 'blah'}
process_route = route_url("process_model_route", self.request, ppath=ppath)
return dict({'ppath':ppath, 'process_route':process_route})
Шаблон:
<%def name="direct_load_model_form(method, target_path)">
${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')}<BR>
${h.tags.submit('submit', 'Submit')}
${h.tags.end_form()}
</%def>
${self.direct_load_model_form(process_route, ppath)}
Пример базового использования выглядит так:
>>> from formencode import htmlfill
>>> form = '<input type="text" name="fname">'
>>> defaults = {'fname': 'Joe'}
>>> htmlfill.render(form, defaults)
'<input type="text" name="fname" value="Joe">'
Я не использую, как заполнять первый аргумент htmlfill.render
в моем случае.