I am new to flask an am having an issue with creating a dynamic url from form data. Specifically from the value of a SelectField of WTFORMS. My code is as follows
My form looks like this
from flask_wtf import Form
from wtforms import SelectField
from wtforms.fields.html5 import DateField
class SelectEventForm(Form):
sports = SelectField(u'Select Sport')
start_after_date = DateField('Starts After Date')
start_before_date = DateField('Starts Before Date')
My controller has the following code
@app.route('/event', methods=['GET', 'POST'])
def event():
form = SelectEventForm(request.form)
sports = betfair_client.call_rest_api('listEventTypes/', {"filter": {}})
form.sports.choices = []
for sport in sports:
for key in sport:
form.sports.choices.append((key, sport[key]))
return render_template('events.html', form=form)
@app.route('/event/<sports>', methods=['GET', 'POST'])
def event_select(sports):
#print request.form
#print request.form.get('sports')
return render_template('events_two.html')
The form in html is as follows
<form class="form-style-7" action="{{ url_for('event_select', sports=form.sports.sport) }}" method="post">
<ul>
<li name="sport">
{{ form.sports.label}} {{ form.sports }}
</li>
<li>
{{ form.start_after_date.label }} {{ form.start_after_date }}
</li>
<li>
{{ form.start_before_date.label }} {{ form.start_before_date }}
</li>
<li>
<input type="submit" value="Next">
</li>
</ul>
</form>
What I would like to do, is se the value from the SelectField to generate the url. Have been stuck on this for some time. The form itself and the drop down list display everything correctly
Thanks