WTForms不会呈现字段
问题描述:
我无法使用WTForms呈现表单的字段。我将它与GAE中的webapp框架和Django模板一起使用。WTForms不会呈现字段
我做了一个简单的项目作为测试,它工作正常。下面是一个较大的项目的一些代码,在一个的问题:
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>
等...我在我提到的测试项目中做了同样的事情,它似乎工作得很好。这里可能会出现什么问题?
答
我想通了。原来我有另一个模块定义了一个Form
,TextField
和TextAreaField
类,这个类正在用来代替WTForms类。