WTForms Flask(wtf_flask) 验证器如何包含 RadioField 的 "required" 属性

WTForms Flask(wtf_flask) validators how to include "required" attribute for RadioField

我主要寻找的是 WTForms InputRequired() 的 RadioField 等效验证器。我的意思是,当您尝试提交表单而不在具有 InputRequired() 验证器的 StringField 字段中输入任何文本时,用户会在文本字段上方收到提示 "Please fill out this field"。我希望用户必须选择 malefemale.

这在 HTML 表单中很容易完成,只需在 HTML 表单中包含 required 属性即可。但我似乎无法理解 RadioField 在 WTForms 中的等价物。 InputRequired()DataRequired() 都仅适用于输入文本字段,似乎不适用于任何其他类型的字段。

如果我有下面非常简单的 WTForms class 注册表单,InputRequired() 在这种情况下效果很好,因为它会提示用户 "Please fill out this field" 如果他们忘记输入在他们的 namesurname 中。除非他们在这些字段中输入内容,否则不会提交表单。

class Signup(FlaskForm):
name = StringField('First Name', validators=[InputRequired()])
surname = StringField('Last Name', validators=[InputRequired()])
submit = SubmitField('Signup')

但是,如果我有以下具有 RadioField 的表单,强制用户选择 MaleFemale 的等效验证器是什么,如果他们不选择我想提供的提示 "please fill out this field"? (我正在使用 BootStrap)我似乎找不到任何关于它的信息。它存在吗? 第二个答案中的问题基本上有我要找的东西 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 %}