WTForms 不会呈现字段
Posted
技术标签:
【中文标题】WTForms 不会呈现字段【英文标题】:WTForms won't render fields 【发布时间】:2011-07-13 05:38:07 【问题描述】:我在使用 WTForms 呈现表单字段时遇到问题。我将它与 GAE 中的 webapp 框架和 Django 模板一起使用。
我做了一个简单的项目作为测试,它运行良好。这是一个更大项目的一些代码,有问题的那个:
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')
这是请求处理程序中使用的表单类的 sn-p(我省略了一些不相关的代码):
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>
...
问题是模板中的form.name
、form.email
等没有给我字段的HTML表示形式,而是有这种输出:<form.TextField instance at 0xac261ec>
或<form.TextAreaField instance at 0x966e76c>
等。 .我在我提到的测试项目中做了同样的事情,它似乎工作得很好。这里出了什么问题?
【问题讨论】:
【参考方案1】:我想通了。原来我有另一个模块定义了 Form
、TextField
和 TextAreaField
类,它被用来代替 WTForms 类。
【讨论】:
以上是关于WTForms 不会呈现字段的主要内容,如果未能解决你的问题,请参考以下文章