我是 WTForms 的新手。我有一个带有提交按钮的用户注册表:

submit = SubmitField('Submit')

我想确保通过按下提交按钮而不是其他方式提交表单。在 docs 它指出
class wtforms.fields.SubmitField(default field arguments)
Represents an <input type="submit">. This allows checking if a given submit button has been pressed.

这提出了一个问题:对于我的情况,我是否需要添加“必需”验证器?

例如,是否需要:
submit = SubmitField('Submit', [validators.Required()])

最佳答案

我想你会的。查看源代码,没有什么可以使 SubmitField 成为必需的。
SubmitField 实际上只是一个 BooleanField :

class SubmitField(BooleanField):
    """
    Represents an ``<input type="submit">``.  This allows checking if a given
    submit button has been pressed.
    """
    widget = widgets.SubmitInput()

关联的小部件只是一个具有 type="submit"的输​​入小部件。它似乎也使用 SubmitField 的标签作为 HTML 中的文本。
class SubmitInput(Input):
    """
    Renders a submit button.

    The field's label is used as the text of the submit button instead of the
    data on the field.
    """
    input_type = 'submit'

    def __call__(self, field, **kwargs):
        kwargs.setdefault('value', field.label.text)
        return super(SubmitInput, self).__call__(field, **kwargs)

它似乎并没有做更多的事情。

关于python - SubmitField 是否需要验证器?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12907748/

10-12 18:43