Использование хлебных крошек с django-фильтром, проблема QueryDict - PullRequest
0 голосов
/ 03 декабря 2009

Я использую django-фильтр для детализации и хотел бы создавать хлебные крошки для каждого фильтруемого элемента. Например:

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

Bedrooms:
4
3
2
1

Каждый из пунктов под ценовыми диапазонами и спальнями будет ссылкой для детализации в наборе запросов.

Я хотел бы создать такие крошки, как Price range 0-999 или Bedrooms 3, если пользователь щелкнет по этим ссылкам, а затем отобразит Price range 0-999 > Bedrooms 3 или Bedrooms 3 > Price range 0-999, когда они нажмут вторую ссылку.

Хлебные крошки должны поддерживать порядок (часть, с которой у меня проблемы) и работать с любым количеством атрибутов. При щелчке ссылки в следе крошки должен применяться фильтр, по которому щелкнули, и все фильтры перед ним в следе.

Я хотел бы создать пустой QueryDict, а затем выполнить итерацию по запросу. GET для создания QueryDict при выводе хлебных крошек, но по какой-то причине QueryDict выполняет итерацию по его элементам в обратном направлении (см. Документацию ).

Какой самый чистый способ сделать это? Кто-нибудь знает, почему QueryDict работает таким образом? (Я полагаю, что мне не хватает варианта использования.) Любой совет приветствуется.

1 Ответ

1 голос
/ 03 декабря 2009

отслеживать порядок в сессиях. поэтому при первом нажатии фильтра (например, 3 слоя) сохраните его. затем, если щелкнет другой, создайте свои хлебные крошки из сессий. скажем, вторым было 0-999, вы вытаскиваете любые существующие хлебные крошки (в этом примере вы найдете 3 кровати) и затем добавляете последние (0-999).

...