У меня проблемы с отображением полей формы с помощью WTForms.Я использую его с фреймворком webapp и шаблонами Django в GAE.
Я сделал простой проект в качестве теста, и он работал нормально.Вот некоторый код из более крупного проекта, в котором есть проблема:
class ShowBoardForm(Form):
name = TextField('Name', [validators.Length(max=20)])
email = TextField('Email', [validators.Length(max=20)])
subject = TextField('Subject', [validators.Length(max=20)])
textfield = TextAreaField('Comment', [validators.Length(max=2000)])
filefield = FileField('Image')
А вот фрагмент класса, используемого в обработчике запросов (я пропустил некоторый нерелевантный код):
template_vars = {
'form':ShowBoardForm()
}
path = os.path.join(os.path.dirname(__file__),'templates','showboard.html')
self.response.out.write(template.render(path,template_vars))
Вот как я использую form
в шаблоне:
...
<form method='post' action='{{ url }}/post' enctype='multipart/form-data'>
{{ form.name.label }}{{ form.name }}<br/>
{{ form.email.label }}{{ form.email }}<br/>
{{ form.subject.label }}{{ form.subject }}<br/>
{{ form.textfield.label }}{{ form.textfield }}<br/>
{{ form.filefield.label }}{{ form.filefield }}<br/>
<input type='submit' value='ok'/>
</form>
...
Проблема в том, что вместо предоставления HTML-представления поля form.name
, form.email
и т. Д.... в шаблоне есть такой вывод: <form.TextField instance at 0xac261ec>
или <form.TextAreaField instance at 0x966e76c>
и т. д. ... Я сделал то же самое в упомянутом мной тестовом проекте, и, похоже, он работает нормально.Что здесь может пойти не так?