You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flask开发中wtforms的InputRequired类实例化错误求助

解决WTForms InputRequired 类实例错误

错误提示TypeError: <class 'wtforms.validators.InputRequired'> is not a valid validator because it is a class, it should be an instance的原因很直接:你在LoginForm中传入了InputRequired类本身,而不是它的实例。

错误代码位置

你的LoginForm里的字段验证器写法有误:

class LoginForm(FlaskForm):
    username = StringField(validators=[InputRequired, Length(min=4, max=20)], render_kw={"placeholder": "Username"})
    password = PasswordField(validators=[InputRequired, Length(min=4, max=20)], render_kw={"placeholder": "Password"})
    submit = SubmitField("Login")

这里的InputRequired没有加括号,传递的是类对象,而非实例。

修正后的代码

把InputRequired改成InputRequired()(即使不需要额外参数也要加括号实例化):

class LoginForm(FlaskForm):
    username = StringField(validators=[InputRequired(), Length(min=4, max=20)], render_kw={"placeholder": "Username"})
    password = PasswordField(validators=[InputRequired(), Length(min=4, max=20)], render_kw={"placeholder": "Password"})
    submit = SubmitField("Login")

补充说明

你在RegisterForm里的写法是正确的,只是LoginForm漏了括号。这不是WTForms版本更新的问题,而是语法使用错误——WTForms的所有验证器都是类,必须通过加括号创建实例后才能作为验证器传入字段。

内容的提问来源于stack exchange,提问作者Dragynjump

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 00:12:08