0

django-filter を使用してドリルダウンし、フィルタリングされた各アイテムのブレッドクラムを作成したいと考えています。例えば:

Price ranges:
10,000+
5,000-9,999
1,000-4,999
0-999

Bedrooms:
4
3
2
1

価格帯と寝室の下の各項目は、クエリセットをドリルダウンするためのリンクになります。

ユーザーがこれらのリンクをクリックして、2 番目のリンクをクリックしたときにPrice range 0-999orを表示する場合などのブレッドクラムを作成したいと思います。Bedrooms 3Price range 0-999 > Bedrooms 3Bedrooms 3 > Price range 0-999

ブレッドクラムは順序 (私が問題を抱えている部分) を維持し、任意の数の属性に対して機能する必要があります。ブレッドクラム トレイルのリンクをクリックすると、クリックされたフィルターと、トレイル内のそれより前のすべてのフィルターが適用されます。

空を作成してQueryDictから request.GET を反復処理してQueryDict、ブレッドクラムを出力するときに構築しますが、何らかの理由でQueryDictその要素を逆方向に反復処理します (ドキュメントを参照)。

これを達成するための最もクリーンな方法は何ですか? なぜQueryDictこのように機能するのか誰にもわかりますか?(私が見逃しているユースケースがあると思います。)アドバイスをいただければ幸いです。

4

1 に答える 1

1

セッションの順序を追跡します。そのため、最初のフィルター (例: 3 つのベッド) をクリックすると、それが保存されます。次に、別のものがクリックされた場合は、セッションからパンくずを作成します。2 番目が 0-999 だったとしたら、既存のパンくずリスト (この例では 3 つのベッドが見つかります) を取得し、最新のもの (0-999) に追加します。

于 2009-12-03T07:22:08.797 に答える