我有一个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')
发布于 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>
https://stackoverflow.com/questions/-100001903
复制相似问题