首页 > 解决方案 > WTForms TextAreaField 长度验证

问题描述

如果输入少于 10 个字符,则不会出现长度验证消息,而是重定向到主页。如何在表单字段为空时显示错误消息?

表单类

class __MyForm(FlaskForm):
    name = StringField(FIELDS[0], default="", validators=[DataRequired()])
    mail = EmailField(FIELDS[1], default="", validators=[DataRequired()])
    message = TextAreaField(FIELDS[2], default="", validators=[DataRequired(), Length(min=10, max=250, message="At least 15 characters, maximum 250")])

HTML

            <form method="POST">
                {{ form.csrf_token }}
                <div class="row">
                    <div class='form-inputs col-12 col-lg-6'>{{ form.name() }}</div>
                    <div class='form-inputs col-12 col-lg-6'>{{ form.mail() }}</div>           
                     <p class="col-12 col-lg-11">{{ form.message() }}</p>                    
                    <button type="submit" class='btn btn-link col-12 col-lg-1' title="Wyślij">
                        <i class="fas fa-paper-plane fa-4x mb-3"></i>
                    </button>                    
                </div>                    
            </form>

我想用我的长度验证消息显示这样的错误: 在此处输入图像描述

标签: pythonflaskwtforms

解决方案


您需要修改 html 以显示存储在“field”.errors 中的错误,并更正视图路由以在验证错误时不重定向到您的主页。

你应该看看:https ://flask.palletsprojects.com/en/2.0.x/patterns/wtforms/


推荐阅读