首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >当验证在Flask中失败时,如何覆盖html默认的“请填写此字段”?

当验证在Flask中失败时,如何覆盖html默认的“请填写此字段”?
EN

Stack Overflow用户
提问于 2018-08-03 04:04:47
回答 3查看 0关注 0票数 0

我有一个FlaskWTF表格还有DataRequired验证器和相关错误消息。然而,Chrome浏览器似乎忽略了我的错误信息,只显示“请填写此字段”。我如何让Flask覆盖它并显示我的消息?

from flask_wtf import FlaskForm
from wtforms import StringField, PasswordField, SubmitField
from wtforms.validators import DataRequired

class SignupForm(FlaskForm):
    first_name = StringField('First Name', validators=[DataRequired(message='Hey, put in your first name!')])
    last_name = StringField('Last Name', validators=[DataRequired("What, you can't remember your last name?")])
    email = StringField('Email', validators=[DataRequired('Gonna need your email address!')])
    password = PasswordField('Password', validators=[DataRequired('Really need a password, Dude!')])
    submit = SubmitField('Sign Up')
EN

回答 3

Stack Overflow用户

发布于 2018-08-03 13:42:12

你应该让浏览器来处理这个问题,这些消息是标准的,并根据用户计算机的区域设置进行调整。有一个JavaScriptAPI来控制这些消息( ,尽管WTForms没有提供与它的任何集成(但是,扩展是一个好主意)。

如果你真的想要禁用这个,你可以通过required=False同时渲染一个字段。

{{ form.name(required=False) }}

你可以通过重写整个窗体来禁用它。

class NoRequiredForm(Form):
    class Meta:
        def render_field(self, field, render_kw):
            render_kw.setdefault('required', False)
            return super().render_field(field, render_kw)

你可以通过从禁用该窗体的基窗体继承它来禁用多个窗体。

class UserForm(NoRequiredForm):
    ...

还可以通过设置novalidate属性在HTML上。

<form novalidate>

</form>
票数 0
EN

Stack Overflow用户

发布于 2019-03-06 16:01:39

真的太感谢了,我也是搞了两天了,终于通过“请填写此字段”百度搜到了你这个解决方法,谢谢谢谢!真是踏破铁鞋无觅处得来全不费工夫

票数 0
EN

Stack Overflow用户

发布于 2019-12-11 12:48:55

account = StringField(label="账号",
                      validators=[
                          DataRequired("请输入账号!",)
                      ],
                      description="账号",
                      render_kw={"class": "form-control",
                                 "placeholder": "请输入账号!",
                                 "required": False
                                 }
                      )

当使用了DaraRequired 的时候 默认就要求 此字段必填,所以 在render的时候将required 定义为false 也可以达到同样的效果

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100001903

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档