gpt4 book ai didi

python - WTForms 自定义字段验证不执行

转载 作者:行者123 更新时间:2023-12-01 06:32:27 25 4
gpt4 key购买 nike

按照这个答案:How to validate a DateField in WTForms我尝试进行自定义验证。但它没有被调用。我知道这一点是因为 ValidationError 在测试期间不会发生。

import datetime as dt
from flask_wtf import FlaskForm
from wtforms import SubmitField, DateTimeField
from wtforms.validators import ValidationError

class NotificationMessage(FlaskForm):
expire = DateTimeField(
'Expire',
default=dt.datetime.today() + dt.timedelta(days=31),
validators=[],
format='%Y-%m-%d %H:%M')
submit = SubmitField('Send Notification')

def validate_expire(form, field):
# if field.data and field.data < dt.datetime.today():
raise ValidationError('Expire datetime must be in the future.')

我必须在我的 Flask 路由或其他东西中显式调用 validate_expire 方法吗?

最佳答案

Must I call the validate_expire method explicitly in my flask route or something?

不,但是您必须在端点中调用 form.validate()form.validate_on_submit() (括号很重要,否则您只是检查这些方法是存在的)。

这两个函数都期待 ValidationErrors 并捕获它们并简单地返回一个 bool 值。应用程序代码中没有引发异常。

调用其中一个验证函数后,您还可以检查 form.errors 中每个字段的错误列表字典。

您的表单代码按预期工作。

关于python - WTForms 自定义字段验证不执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59829209/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com