我基本上寻找的是用于WTForms的InputRequired()
的RadioField等效验证器。我的意思是当你尝试在没有输入任何文本的情况下提交表单到具有InputRequired()
验证器的StringField字段时,用户会在文本字段上方提示"Please fill out this field"
。我希望用户必须选择male
或female
。
只需在HTML表单中包含required
属性,即可在HTML表单中轻松完成此操作。但我似乎无法理解WTF中对于RadioField的等价物。 InputRequired()
和DataRequired()
都只是输入文本字段,似乎不适用于任何其他类型的字段。
如果我有以下非常简单的WTForms类用于注册表单,InputRequired()
在这个实例中效果很好,因为它给用户提示"Please fill out this field"
如果他们忘记要么放入他们的name
或surname
。除非他们在这些字段中输入内容,否则表单将不会提交。
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()
与RadioField
但没有成功。
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')
IMO,你现在只能用这种方式实现这个目标:
{% for subfield in form.age %}
<tr>
<td>{{ subfield(required="required") }}</td>
<td>{{ subfield.label }}</td>
</tr>
{% endfor %}