WTForms不验证 - 没有错误

Ovi*_*vid 7 python wtforms

我在WTForms库中遇到了一个奇怪的问题.对于测试,我创建了一个包含单个字段的表单:

class ArticleForm(Form):
    content = TextField('Content')
Run Code Online (Sandbox Code Playgroud)

它接收一个简单的字符串作为内容,现在我使用form.validate()它,它会False因任何原因返回.

我看着validate()的方法'FormField对象.我发现如果错误列表的长度为零,则该字段返回true.这对我的测试来说是正确的,因为我没有得到任何错误.在shell中,我的字段验证按预期返回True.

validate()Form对象中的方法只是在字段上运行并调用它们的validate()方法,只有在其中一个字段被验证为false时才返回false.

因此,我的Field在没有任何错误的情况下得到验证,我无法在代码中看到任何原因form.validate()返回False.

有任何想法吗?

Nik*_*tov 7

在我看来,你只是将错误的值传递给你的表单.这是你需要使用这样的形式:

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
Run Code Online (Sandbox Code Playgroud)

ps:如果您提供更明确的信息会更好:代码示例和WTForms版本.