アプリケーションに、指定されたクエリ文字列に基づいてデータを返すエンドポイントがあります。クエリ文字列には、たとえば/api/entities/related?filter1=val1&filter1=val2&filter2=val3
type の 2 つのフィルターを識別するために、重複するキーを含めることができます (多くの場合、そうする必要があります) filter1
。Flask はこれを適切に処理します。たとえば、 を実行するrequest.args.to_dict
と、 が得られ{'filter1': ['val1', 'val2'], 'filter2': 'val3'}
ます。
私の質問は、エンドポイントからコレクションをフェッチするときにバックボーンで同じことを達成する方法です。現在、私は持っているかもしれません
this.fetch({data: {'filter1': 'val1', 'filter1': 'val2', 'filter2': 'val3'}});
重複したキーは JavaScript オブジェクトで互いにオーバーライドされるため、私のfilter1
値はval2
. ただし、行うときは
this.fetch({data: {'filter1': ['val1', 'val2'], 'filter2': 'val3'}});
URL は最終的にになります/api/entities/related?filter1%5B%5D=val1&filter1%5B%5D=val2
。これは、少なくとも 2 つの同一のキーを使用しますが、明らかに機能しません。
これはエンコーディングの問題ですか、それとも別の方法でアプローチする必要がありますか?