2013-04-18 1 views
0

가정하자 내가 가지고이 사전어떻게 사전과 장고의 키에 따라 Q 필터 검색을 할 수

mydict['number'] = {23,24,25} 
mydict['name'] = {"john","mike","kaff"} 
mydict['area'] = {"london", "usa", "japan"} 

이미 쿼리가

qs을 설정해야하지만 난 추가 필터링 기반 갖고 싶어 위의 dictionary 뭔가 너무

qs.filter (where number __icontains in 23,24,25)

qs.filter (where name __icontains in john, mike, kaff)

같은 오에 N

는 편집 :

이 난 시도 것입니다하지만 거친

query_list = [] 

for key1 in mydict.iteritems(): 
    for myval in mydict[key1]: 
    qry = qry + Q(myval__icontains= myval) | 
query_list.append(qry) 

queryset = Student.objects.filter(reduce(operator.and_, query_list)) 
+0

당신은 무엇을하려고 않았다을? –

답변

0

:

for k, v in mydict: 
    qs.filter('%s__icontains' % k=v) 
+0

이것은 AND입니다. 'icontains in'은 그가 필요한 것을 의미합니다. –

관련 문제