3

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

submit = SubmitField('Submit')

我想确保通过按下提交按钮而不是其他方式提交表单。在文档中它指出

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()])
4

1 回答 1

4

我想你会的。查看源代码,没有什么是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" 的 Input 小部件。它似乎也使用 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)

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

于 2012-10-16T05:32:16.797 回答