2016-03-03 115 views
2

我有一個包含多個鏈接的頁面,用於將用戶重定向到不同的頁面。我認爲使用表單會更好,所以我定義了一個WTForms Form與多個SubmitFields。我如何確定哪個按鈕被點擊並重定向?確定在Flask視圖中按下了哪個WTForms按鈕

class MainForm(Form): 
    user_stats = SubmitField('User Stats') 
    room_stats = SubmitField('Room Stats') 

@main.route('/') 
@login_required 
def index(): 
    form = MainForm()  
    return render_template('index.html', form=form) 
<form action="#" method="post"> 
    {{ wtf.quick_form(form) }} 
</form> 

回答

8

您添加了兩個按鈕的形式,因此檢查其中的字段數據是True

from flask import Flask, render_template, redirect, url_for 
from flask_wtf import Form 
from wtforms import SubmitField 

app = Flask(__name__) 
app.secret_key = 'davidism' 

class StatsForm(Form): 
    user_stats = SubmitField() 
    room_stats = SubmitField() 

@app.route('/stats', methods=['GET', 'POST']) 
def stats(): 
    form = StatsForm() 

    if form.validate_on_submit(): 
     if form.user_stats.data: 
      return redirect(url_for('user_stats')) 
     elif form.room_stats.data: 
      return redirect(url_for('room_stats')) 

    return render_template('stats.html', form=form) 

app.run(debug=True) 
<form method="post"> 
    {{ form.hidden_tag() }} 
    {{ form.user_stats }} 
    {{ form.room_stats }} 
</form> 
相關問題