2012-06-28 150 views
1

我正在顯示帶有4個文本框的頁面,每個文本框將用戶輸入的值存儲到一個單獨的變量中。 我的數據庫有4列,每列對應一個文本框的變量。通過多個表單字段搜索?

我想這樣做: 用戶可以在1,2,3或全部4個文本框中輸入值,並且我想根據它們輸入的每個值修剪搜索結果。每個文本框都是可選的。

我該怎麼做?我是Django的新手,我只知道如何使用一個搜索詞進行搜索。

回答

2

我認爲你需要Q對象。請參閱:https://docs.djangoproject.com/en/dev/topics/db/queries/#complex-lookups-with-q-objects

從文檔:

Poll.objects.get(
    Q(question__startswith='Who'), 
    Q(pub_date=date(2005, 5, 2)) | Q(pub_date=date(2005, 5, 6)) 
) 

翻譯爲:

SELECT * from polls WHERE question LIKE 'Who%' 
    AND (pub_date = '2005-05-02' OR pub_date = '2005-05-06') 

您可以從清洗填充表單將q查詢 - 你甚至可能要重寫潔()和返回查詢集的方式,以便您可以訪問驗證表單中的查詢集。