【发布时间】:2019-03-23 12:39:43
【问题描述】:
我基本上要寻找的是用于 WTForms 的 InputRequired() 的 RadioField 等效验证器。我的意思是当您尝试提交表单而不在具有InputRequired() 验证器的StringField 字段中输入任何文本时,用户会在文本字段上方收到提示"Please fill out this field"。我希望用户必须选择male 或female。
这很容易在 HTML 表单中完成,只需在 HTML 表单中包含 required 属性即可。但我似乎无法理解 RadioField 的 WTForms 中的等价物是什么。 InputRequired() 和 DataRequired() 都只用于输入文本字段,似乎不适用于任何其他类型的字段。
如果我有以下非常简单的 WTForms 注册表单类,InputRequired() 在这种情况下效果很好,因为如果用户忘记输入name 或surname,它会给用户提示"Please fill out this field"。除非他们在这些字段中提供输入,否则表单不会提交。
class Signup(FlaskForm):
name = StringField('First Name', validators=[InputRequired()])
surname = StringField('Last Name', validators=[InputRequired()])
submit = SubmitField('Signup')
但是,如果我有下面的带有 RadioField 的表单,强制用户选择 Male 或 Female 的等效验证器是什么,如果他们不选择一个,我想给出提示 "please fill out this field"? (我正在使用 BootStrap)我似乎找不到任何关于它的信息。它存在吗? This 第二个答案中的问题基本上有我正在寻找的 Required="Required" 但自 2018 年 6 月以来已过时。我尝试了几乎所有方法来尝试使用 InputRequired() 或 DataRequired() 和 @ 987654341@ 但没有成功。
class StudentPersonalQs(FlaskForm):
gender = RadioField('Gender', choices = [('Male','Male'),('Female','Female')])
age = SelectField('Age', choices = [('12', '12'), ('13', '14'),('15', '15'), ('16', '16'),('17', '17'), ('18+', '18+')])
submit = SubmitField('Signup')
【问题讨论】:
标签: python flask flask-wtforms wtforms