我有一個頁面,我正在向用戶顯示查詢集的結果。 我想要做的是讓用戶點擊一個鏈接來申請一個過濾器。django設計模式/最佳實踐:過濾查詢集
目前我所做的就是讓鏈接將「get」參數傳遞給頁面以應用過濾器。該過濾器可以是其他型號或自定義過濾器引用(例如未分配過濾器)
爲了提供一個體面的用戶體驗的實現需要做幾件事情
-
視圖
- :
- 檢查傳送通過濾波器參數是有效
- 檢查什麼類型的過濾器是(基於其他型號或自定義過濾器),以正確的條件應用到查詢集
- (可選)的方式,使過濾累積(即您可以繼續添加過濾器)
在模板
- :
- 顯示正確的結果集基於choosen過濾器上
- 顯示過濾器時,識別哪些過濾器,我們已經應用使當前應用的過濾器顯示爲文本而不是超鏈接。
我想這一定是很常見,有人必須有這樣一種設計模式或最佳實踐比視圖和模板if/else語句的明顯失衡想通了這個其他。
有嗎?
謝謝Bartek。我很關心在GET參數中使用實際的鍵。即使它們是有效的,它們仍然可能是不受歡迎的(例如,允許用戶退出他們不應該訪問的信息)。 –
當然,但您可以在構建查詢時設置權限處理。 – Bartek