Использование хлебных крошек с django-фильтром, проблема QueryDict

Я использую 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 а затем перебрать request.GET, чтобы построить QueryDict когда я вывожу хлебные крошки, но по какой-то причине QueryDict перебирает свои элементы в обратном направлении (см. документацию).

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

1 ответ

Решение

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

Другие вопросы по тегам