2009-12-02 38 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)。