Flask WTFormsSelectFieldフォームエラー有効な選択分析ではありません
Flask Wtforms Selectfield Form Error Not Vaild Choice Analysis
この問題については、ソースコードを見て発見しました。
class SelectField(SelectFieldBase): widget = widgets.Select() def __init__(self, label=None, validators=None, coerce=text_type, choices=None, **kwargs): super(SelectField, self).__init__(label, validators, **kwargs) self.coerce = coerce self.choices = copy(choices) def iter_choices(self): for value, label in self.choices: yield (value, label, self.coerce(value) == self.data) def process_data(self, value): try: self.data = self.coerce(value) except (ValueError, TypeError): self.data = None def process_formdata(self, valuelist): if valuelist: try: self.data = self.coerce(valuelist[0]) except ValueError: raise ValueError(self.gettext('Invalid Choice: could not coerce')) Def pre_validate(self, form): #pre-verification function for v, _ in self.choices: if self.data == v: break else: raise ValueError(self.gettext('Not a valid choice'))
pre_validate()クラスメソッドがあることがわかります。このpre_は、validate_と同様に、フロントボタンが送信された後にバックエンド応答(コードの下)が自動的にトリガーする形式である必要があります。
if form.validate_on_submit():