2009-12-02 107 views
0

我使用django过滤器深入,并希望为每个过滤的项目创建面包屑。例如:使用面包屑与Django的过滤器,QueryDict麻烦

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

Bedrooms: 
4 
3 
2 
1 

每个下的价格范围和卧室的项目将是一个QuerySet向下钻取的链接。

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

面包屑应该保持顺序(我遇到麻烦的部分)并且适用于任何数量的属性。单击面包屑路径中的链接应该在点击之前应用单击的过滤器和所有过滤器。

我想创建一个空QueryDict,然后通过迭代request.GET中建立起来QueryDict,我输出的面包屑,但由于某种原因QueryDict遍历它的元素向后(请参阅文档)。

什么是最干净的方法来实现这一目标?有谁知道为什么QueryDict这样工作? (我想有一个我错过的用例。)任何意见都是值得赞赏的。

回答

1

跟踪会话顺序。所以当第一个过滤器被点击(例如3张床)时,将其存储。那么如果另一个人被点击,从会话中建立你的面包屑。比如说第二个是0-999,你可以把任何现有的面包屑(在这个例子中你会找到3张床),然后用最新的(0-999)。