Я новичок в Flask и WTForms и действительно борюсь с этой простой задачей. Я хочу отобразить список опций. Пользователь может выбрать несколько опций, и затем эти варианты генерируют новый список выбираемых опций.
Чтобы упростить ситуацию на данный момент, я просто пытаюсь напрямую выбрать выбранные параметры из одного SelectMultipleField и установить их в качестве вариантов выбора во втором SelectMultipleField:
class SelForm(FlaskForm):
choices = []
selections = SelectMultipleField('Available Streams', choices=choices)
submit = SubmitField('Choose Streams')
@streams_blueprint.route('/select', methods=['GET','POST'])
def select():
# Grab a selectable list of studies from database.
form = SelForm()
db_objects = [(stream.id, stream.name) for stream in Stream.objects()]
form.selections.choices = db_objects
if form.validate_on_submit():
form2 = SelForm()
selections = form.selections.data
form2.selections.choices = selections
else:
form2 = SelForm()
return render_template('select_streams.html', form=form, form2=form2)
Независимо от того, что я пытаюсь, формы просто всегда отображаются в исходном состоянии (form.selections.choices=db_objects
и form2.selections.choices=[]
). Сегмент validate_on_submit
ничего не делает. Как я могу получить форму 2 для обновления после нажатия кнопки Отправить?