Использование хлебных крошек с django-фильтром, проблема с QueryDict
-
11-09-2019 - |
Вопрос
Я использую 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
работает так?(Я думаю, что есть вариант использования, который мне не хватает.) Любые советы приветствуются.
Решение
отслеживать порядок в сессиях.поэтому при нажатии первого фильтра (например, 3 кровати) сохраните его.затем, если щелкнуть другой, соберите хлебные крошки из сеансов.скажем, второй был 0-999, вы бы извлекли все существующие хлебные крошки (в этом примере вы нашли бы 3 кровати), а затем добавили бы самую последнюю (0-999).