我在 WTForms 库中遇到了一个奇怪的问题。为了进行测试,我创建了一个包含单个字段的表单:
class ArticleForm(Form):
content = TextField('Content')
它接收一个简单的字符串作为内容,现在我使用 form.validate()
并且它出于任何原因返回 False
。
我研究了 'Form
和 Field
对象的 validate()
方法。我发现如果错误列表的长度为零,则该字段返回 true。这对于我的测试来说是正确的,因为我没有收到任何错误。在 shell 中,我的字段验证按预期返回 True。
Form 对象中的 validate()
方法仅运行字段并调用其 validate()
方法,并且仅当其中一个字段被验证为错误。
因此,当我的字段经过验证时没有任何错误,我在代码中看不到 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版本。
关于python - WTForms 不验证 - 没有错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4534115/