如何让 WTForms 要求进入 RadioButton 字段?
How to get WTForms to require entry into a RadioButton field?
我正在使用 Flask 和 Flask-WTF 创建 Web 表单。表单是动态的,字段由数据库确定。数据库中的一些问题指定单选按钮字段,而其他问题指定单个单词。
我需要要求单选按钮字段有一个选择。使用 wtforms.validators.DataRequired
非常适合字符串字段,但不适用于单选字段。
...
if question.category == 'word':
field = StringField(question.question, validators=[DataRequired()])
elif question.category == 'likert':
choices = [('1', 'Strongly Agree'), ('2', ...
field = RadioField(question.question, choices=choices,
validators=[DataRequired()])
setattr(FlaskForm, str(question.id), field)
stator(FlaskForm, 'submit', SubmitField('Submit))
form = FlaskForm()
....
将任何字符串字段留空会导致提交时出现错误消息。但是,如果没有选择一个无线电字段,则不会发生任何事情。
我该如何纠正?
我仍然不知道为什么 DataRequired
(和 InputRequired
)不能正确处理无线电场,但我是这样解决的。
我将 FlaskForm
分类如下:
class SurveyForm(FlaskForm):
class Meta:
def render_field(self, field, render_kw):
render_kw.setdefault('required', True)
return super().render_field(field, render_kw)
通过将动态字段添加到该子类的实例中,甚至无线电字段也需要输入。
我正在使用 Flask 和 Flask-WTF 创建 Web 表单。表单是动态的,字段由数据库确定。数据库中的一些问题指定单选按钮字段,而其他问题指定单个单词。
我需要要求单选按钮字段有一个选择。使用 wtforms.validators.DataRequired
非常适合字符串字段,但不适用于单选字段。
...
if question.category == 'word':
field = StringField(question.question, validators=[DataRequired()])
elif question.category == 'likert':
choices = [('1', 'Strongly Agree'), ('2', ...
field = RadioField(question.question, choices=choices,
validators=[DataRequired()])
setattr(FlaskForm, str(question.id), field)
stator(FlaskForm, 'submit', SubmitField('Submit))
form = FlaskForm()
....
将任何字符串字段留空会导致提交时出现错误消息。但是,如果没有选择一个无线电字段,则不会发生任何事情。
我该如何纠正?
我仍然不知道为什么 DataRequired
(和 InputRequired
)不能正确处理无线电场,但我是这样解决的。
我将 FlaskForm
分类如下:
class SurveyForm(FlaskForm):
class Meta:
def render_field(self, field, render_kw):
render_kw.setdefault('required', True)
return super().render_field(field, render_kw)
通过将动态字段添加到该子类的实例中,甚至无线电字段也需要输入。