【问题标题】:How does Flask-WTF use methods defined in a form?Flask-WTF 如何使用表单中定义的方法?
【发布时间】:2021-07-28 11:37:34
【问题描述】:

当使用Flask-WTF 创建一个表单并实现一个方法,比如检查用户名是否可用时,我很好奇这些方法如何/为什么起作用。

我的意思是,在其余代码中,您一次都没有引用表单类中定义的任何方法;他们似乎在不受任何干扰的情况下自行工作 - 有人可以解释它是如何以及为什么以这种方式工作的吗?

例如:

class RegistrationForm(FlaskForm):
    username = StringField('Username', validators=[DataRequired()])
    email = StringField('Email', validators=[DataRequired(), Email()])
    ...

def validate_username(self, username):
        user = User.query.filter_by(username=username.data).first()
        if user is not None:
            raise ValidationError('Please use a different username.')

上面的代码似乎在提交表单时运行validate_username,而无需我自己调用它。

【问题讨论】:

    标签: flask flask-wtforms wtforms


    【解决方案1】:

    这是按照惯例 - 当您的表单被验证时,它会检查您是否以 validate_your_field 的形式定义了任何自定义 inline validators 并运行这些。

    您可以在文档的Custom Validators 部分找到更多详细信息。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-12-24
      • 1970-01-01
      • 1970-01-01
      • 2021-10-13
      • 2018-09-03
      • 2015-05-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多