使用django-filter的面包屑,QueryDict麻烦

时间:2009-12-02 22:46:33

标签: django django-templates django-views

我正在使用django-filter向下钻取,并希望为已过滤的每个项目创建面包屑。例如:

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

Bedrooms:
4
3
2
1

价格范围和卧室下的每个项目都是在查询集中向下钻取的链接。

如果用户要点击这些链接,我想创建Price range 0-999Bedrooms 3等面包屑,然后在点击时显示Price range 0-999 > Bedrooms 3Bedrooms 3 > Price range 0-999第二个链接。

面包屑应该保持顺序(我遇到麻烦的部分)并且可以处理任何数量的属性。单击痕迹路径中的链接应该应用单击的过滤器以及跟踪中的所有过滤器。

我想创建一个空的QueryDict,然后在我输出面包屑时迭代request.GET来构建QueryDict,但出于某种原因,QueryDict遍历它元素向后(参见文档)。

实现这一目标的最简洁方法是什么?有谁知道为什么QueryDict以这种方式工作? (我想有一个我缺少的用例。)任何建议都表示赞赏。

1 个答案:

答案 0 :(得分:1)

跟踪会话中的顺序。因此,当点击第一个过滤器(例如3个床)时,将其存储起来。然后,如果点击另一个,则从会话中构建面包屑。说第二个是0-999你拉任何现有的面包屑(在这个例子中你会找到3张床)然后用最新的(0-999)。