2013-03-25 52 views
0

我在以下設計中有請求: - example.com/?param1=blah & param1 = blah1 .... param1 = blahn。請注意,我想要有幾個參數的param1。我們捕捉參數參數1的值,我下面遍歷列表並在複雜查詢中使用值Django ORM

searchQery = request.GET.getlist('param1') 

從哪裏獲得與參數1值的列表。我想使用一個複雜的查詢

for item searchQuery: 
     val = MyModel.objects.filter(Q(item__startswith=searchQuery[0])| Q(item__startswith=searchQuery[1])| Q(item__startswith=searchQuery[2])) all the way to searchQuery[n] 

總之我想遍歷列表的值,動態和我目前在那裏丟失。

+0

爲什麼你不使用「__in」。這裏是一個簡單的例子。 val = MyModel.objects.filter(item__in = list) – 2013-03-25 13:40:12

回答

1
from operator import or_ 
val = MyModel.objects.filter(reduce(or_,(Q(item__startswith=x) for x in searchQuery))) 

使用reduce來組合生成的Q表達式的序列。