0
있어 매우 복잡한 쿼리를 줄이고장고 Q 객체 (예를 해결하려고하지 마십시오 - 문제가 더 복잡하다)
crit=[]
crit.append(Q(firstcond = name) | Q(firstcond__isnull = True)
crit.append(Q(secondcond = name) | Q(firstcond__isnull = True)
MyObject.objects.filter(reduce(operator.and_, crit))
이 예상대로 작동합니다
WHERE (firstcond = name OR firstcond IS NULL) AND (secondcond = name OR secondcond IS NULL)
을하지만 지금 일부 OR가 필요합니다 :
WHERE ((firstcond = name OR firstcond IS NULL) AND (secondcond = name OR \
secondcond IS NULL)) OR (third = value)
operator.and_가 감소하므로 세 번째 int crit 목록을 추가 할 수 없습니다. 나는 operator._or를 줄여야 만합니다.하지만 어떻게?
나에게주십시오 :
또는 : 당신이 어떤 이유로
reduce
을 원하는 경우에을 작품 -하지만 맛있어 보인다! –
대단히 고마워요. 그게 내가 필요한거야. –