Я ищу чистый способ сохранения значений WTFForm QuerySelectField, когда выбран данный параметр выпадающего списка. Идея состоит в том, чтобы отфильтровать список проектов в соответствии с данной технологией, выбранной из раскрывающегося списка QuerySelectField. Подход, который я принял, - отправить запрос на получение/проекты, содержащие строку запроса, с идентификатором технологии, используя событие on change при выпадающем i.e./projects? Id = 5. Я его структурирована следующим образом:Persist WTForm QuerySelectField значение после запроса на получение
Проект
форм-class ProjectForm(ProjectFormBase):
title = StringField('Title', [validators.Length(min=4, max=25), validators.DataRequired()])
technology = QuerySelectField('Technology', query_factory= connect.technology_choices,
get_pk=lambda a: a.id,
get_label=lambda a: a.name, allow_blank=True, blank_text=u'Select a technology...')
Проект маршрутные
@app.route('/projects', methods=['GET', 'POST'])
def projects():
list_of_projects = None
form = ProjectForm(request.form)
technology_id = request.args.get('id')
if technology_id:
list_of_projects = connect.project(technology_id)
if request.method == 'GET':
if list_of_projects:
connect.close_connection()
return render_template("projects.html",
list_of_projects = list_of_projects, form = form)
else:
return render_template("projects.html", form=form)
JS -
$('#technology').on('change', function() {
var technology = $("#technology").value;
window.location.href="/projects?id=" + technology_id;
window.history.pushState('obj', 'newtitle', '/projects');
});
Просто подвести итоги, я поиск выбранного значения выпадающего меню для сохранения после события on change. Я также открыт для совершенно другого подхода, а не для передачи значений строки запроса.