python - WTForms 不验证 - 没有错误

标签 python wtforms

我在 WTForms 库中遇到了一个奇怪的问题。为了进行测试,我创建了一个包含单个字段的表单:

class ArticleForm(Form):
    content = TextField('Content')

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

我研究了 'FormField 对象的 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/

相关文章:

python - WTForms SelectField 中的自定义选项基于当前日期

python - 使用带有 GAE 和 Jinja2 的 WTForms,当字段无效时如何获得红色边框?

python - 使用 WTForms 将表示与逻辑分开

python - 如何在 CherryPy 中为 WTForms 集成验证码 (Recaptcha)

python - 传递参数时Django MySQL查询输出错误

Python 正则表达式仅查找两位数字

python - 删除部分路径

python - Pygame 地面碰撞检测和位置重置

python - Gekko 整数优化问题

python - WTForms 等同于 <input type ="time">