如何忽略flask-wtf中的字段验证?

时间:2017-02-27 23:47:19

标签: flask wtforms flask-wtforms

我有一个表单可以将项目添加到我的数据库,其中包含两个按钮:CancelSubmit。我遇到的问题是,当我按空Cancel按钮时,我会收到Please fill out this field.错误而不是返回我的主页(请参阅views.py获取逻辑)。那么,当我按下DataRequired按钮时,如何让我的应用忽略Cancel验证器?

forms.py

class ItemForm(FlaskForm):
  id = StringField('id', validators=[DataRequired()]
  name = StringField('Name', validators=[DataRequired()]
  cancel = SubmitField('Cancel')
  submit = SubmitField('Submit')

views.py

def add_item()
  form = ItemForm()
  if form.validate_on_submit():
    if form.submit.data:
      # Code to add item to db, removed for brevity.
    elif form.cancel.data:
      flash('Add operation cancelled')
      return redirect(url_for('home.homepage'))

1 个答案:

答案 0 :(得分:1)

您的取消按钮实际上不一定是提交按钮。您只需使用一个普通按钮即可将用户带回主页(使用send AJAX request if request successful then write to console to AJAX request AND write to document repeat. 或捕获href事件)。

如果您仍希望onclick按钮成为WTForms字段,则可以选择覆盖表单中的cancel方法并删除validate上的DataRequired验证程序}和id。以下是未经测试的,但可能会为您提供一个起点。

name