2009-08-24 49 views
3

Django中是否有通配符用於Object.filter?Django中的通配符(Objects.filter)

例如,有一個字符,這樣做相當於:

Prices.objects.filter(a = example1 
        ,b = example2 
        #,c = example3 
) 

即代替註釋掉C,我能不能把C = WILDCARD或c = * ...你的JIST。謝謝。

編輯:如果你有一個可以搜索的屬性的大列表,你只想搜索一個選擇的幾個,你不會有負載的功能,做這些特定的搜索。我需要某種角色告訴Django,然後告訴SQL「這個字段沒有關係,我想要所有的東西」......不包括字段(就像在這個例子中)只是創建了一個函數的卸載。

回答

7

做的唯一一件事就是屬性名稱和值的字典,你動態過濾器:

filters = {"a": "example1", "b": "example2", "c": "example3" } 
prices = Prices.objects.filter(**filters) 

然後,設置過濾器在運行時快譯通,根據需要添加或刪除鍵/值對。 **過濾器是一個關鍵字參數。點擊這裏查看更多信息:

http://www.nomadjourney.com/2009/04/dynamic-django-queries-with-kwargs/

+0

還沒有得到它的工作呢! objects.filter如何知道將鍵放入模型的位置? – Federer 2009-08-25 09:37:13

8

嘗試使用containsicontains

下面是一個例子:

Foo.objects.filter(name__icontains = 'hello') #fetches all whose name field contains 'hello' 
+0

工作就像一個魅力!謝謝! – Federer 2009-08-25 10:35:50

+0

不客氣:) – shanyu 2009-08-25 10:43:09