2016-08-04 82 views
0

從Django Admin中查看模型條目時,可以指定過濾器。我怎樣才能模仿這種行爲?不熟悉kwargs,但類似這樣的東西:將kwargs傳遞給Django Filter

foo = Model.objects.filter(**__exact='**') 

其中第一組的**將在模型中的場和第二組將是一個條目。基本上根據用戶在前端選擇的內容來製作查詢變量。我將如何將該變量排序選項發送到視圖,然後將其返回到網頁。怎樣使用字典?請幫忙

SO question已被證明是有一點幫助,但仍然不能完全掌握它。

回答

1

可以使用**

your_filters = { 
'field_1__exact': value_1, 
'field_2__gte': value_2, 
} 

Model.objects.filter(**your_filters) 

說,你可以動態地構建基於用戶輸入您的查詢過濾器(Python字典),解壓Python字典作爲過濾器參數。

+0

感謝您的回覆。 2個問題:'**'適用於'your_filters'變量讓Django知道這可以改變?如果是這樣,那不是變量已經做了什麼,它會變化嗎?問題2:假設我在前端放置了「佔位符」,我怎麼才能將用戶的選擇轉換回視圖。也許是AJAX調用? – Kervvv

+0

@Kervvv關於你的問題2:是的,你可以使用ajax傳遞它並從request.POST或request.GET數據中讀取它們,具體取決於你想要什麼。我不明白第一個問題。 – levi