我有两条路线:
@app.route('/activity', methods=["GET"])
def addactivity():
return render_template('activity.html')
在acitvity.html中我有一个包含某些字段的表单,我想将此表单提交到另一个路径:
@app.route('/students', methods=["GET"])
def addstudents():
return render_template('students.html')
因此,当我在acitvity.html中提交表单时,我将被重定向到
/ students?field1 = value1& field2 = value2 etc ......
对于活动表格,我使用带有验证器的wtforms:DataRequired()或InputRequired()
问题是,当我在addstudents路由中使用form.validate()时,即使表单已经过验证,它也会将我重定向到students.html route.I希望以防表格未经验证显示错误activity.html。怎么可能?
我是新手,也许我的整个代码都是错误的,但概念是如果活动表格有效,我会被重定向到学生路线,如果没有错误将显示在活动路线中。 此外,我需要使用上一个表格的args在学生路线中提交表格。
答案 0 :(得分:0)
例如,初始化表单时,您需要传递request.args
。
@app.route('/students')
def addstudents():
form = Form(request.args)
if form.validate():
return render_template('students.html')
# Redirect to addactivity if form is invalid
return redirect(url_for('addactivity'))
您需要从request
导入flask
对象。
来源:https://github.com/lepture/flask-wtf/issues/291
要在提交表单时重定向到addstudents
,请将属性action="{{ url_for('addstudents') }}"
添加到<form>
中的activity.html
标记中。