我在使用 WTForms 库时遇到了一个奇怪的问题。为了进行测试,我创建了一个包含单个字段的表单:
class ArticleForm(Form):
content = TextField('Content')
它接收一个简单的字符串作为内容,现在我使用form.validate()
它返回False
出于任何原因。
我调查了validate()
的方法'Form
and Field
目的。我发现如果错误列表的长度为零,则该字段返回 true。这对于我的测试来说是正确的,因为我没有收到任何错误。在 shell 中,我的字段验证按预期返回 True。
The validate()
Form 对象中的方法只是运行字段并调用它们validate()
方法,并且仅当其中一个字段被验证为 false 时才返回 false。
因此,当我的字段经过验证没有任何错误时,我在代码中看不到任何原因form.validate()
回报False
.
有任何想法吗?
在我看来,您只是将错误的值传递给您的表单。这就是您需要使用这样的形式:
from wtforms import Form, TextField # This is wtforms 0.6
class DummyPostData(dict):
"""
The form wants the getlist method - no problem.
"""
def getlist(self, key):
v = self[key]
if not isinstance(v, (list, tuple)):
v = [v]
return v
class ArticleForm(Form):
content = TextField('Content')
form = ArticleForm(DummyPostData({'content' : 'my content' }))
print form.validate()
#$ python ./wtf.py
#True
ps:如果能提供更明确的信息就更好了:代码示例和WTForms的版本。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)