我想在每个标签下呈现3个不同的页面/视图。
user.html
<ul id="tabs" class="nav nav-tabs" data-tabs="tabs">
<li role="presentation" class="active"><a href="#tab1" data-toggle="tab">edit profile</a></li>
<li role="presentation" ><a href="#tab2" data-toggle="tab">change password</a></li>
<li role="presentation" ><a href="#tab3" data-toggle="tab">change email</a></li>
</ul>
<div class="tab-content">
<div class="tab-pane active" id="tab1">
<p>User profile edit</p>
</div>
<div class="tab-pane" id="tab2">
{% include 'flask_user/change_password.html' %}
</div>
<div class="tab-pane" id="tab3">
{% include 'change_email.html' %}
</div>
</div>
,视图如下:
@app.route('/profile/<int:agent_id>', methods=['GET', 'POST'])
def user_profile(agent_id):
form = ChangePasswordForm()
if form.validate_on_submit():
change_password()
return render_template('user.html', form=form)
目前只发送一个用于#tab2的表单。但如果我发送所有3个表单,userProfileForm(),changeUserEmailForm()和ChangePasswordForm() 那么处理POST请求时会很复杂。
还有其他方法可以让它发挥作用吗?任何帮助将不胜感激。
答案 0 :(得分:1)
您不必为这三种表单回复到相同的路线。设置三个不同的路由来处理POST后备并将每个表单的action属性设置为适当的路由。