2
特定のドロップダウンオプションが選択されている場合、WTFForm QuerySelectFieldの値を保持するためのきれいな方法を探しています。この考え方は、QuerySelectFieldドロップダウンから選択された特定の技術に従ってプロジェクトのリストをフィルタリングすることです。私が取ったアプローチは、/ projects?id = 5というドロップダウンのon changeイベントを使用して、テクノロジーIDを持つクエリ文字列を含む/ projectsにgetリクエストを送信することです。 -要求を取得した後にWTForm QuerySelectFieldの値を維持する
$('#technology').on('change', function() {
var technology = $("#technology").value;
window.location.href="/projects?id=" + technology_id;
window.history.pushState('obj', 'newtitle', '/projects');
});
ちょうど私は、要約する
プロジェクトroute-
@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プロジェクト
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...')
フォーム - : 私はそれは次のように構成されていオンの変更イベントの後に選択されたドロップダウンメニューの値を探します。私はまた、クエリ文字列の値を渡すのではなく、まったく別のアプローチにもオープンしています。