1

我无法使用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.nameform.email等...在模板中有这样的输出:<form.TextField instance at 0xac261ec><form.TextAreaField instance at 0x966e76c>等...我在我提到的测试项目中做了同样的事情,它似乎工作得很好。这里可能会出现什么问题?

回答

1

我想通了。原来我有另一个模块定义了一个Form,TextFieldTextAreaField类,这个类正在用来代替WTForms类。