我有一个表单可以将项目添加到我的数据库,其中包含两个按钮:Cancel
和Submit
。我遇到的问题是,当我按空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'))
答案 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