장고의 ORM으로 개발을 하다보면 동적으로 모델을 필터링 해야 하는 경우가 생길 수 있습니다. 예를 들어, 데이터 필드가 성별, 연령대(10대, 20대··)가 있다고 가정할 때 각각 필드에 대해서 한 가지의 조건만 준다면 사실상 Q나 동적인 필터링을 사용할 이유가 없습니다. 단순히 Model.objects.filter(성별='남자')와 같이 처리할 수 있기 때문입니다. 그러나, 만약에 연령대가 10대, 30대이고, 성별이 여자인 사람을 뽑아내고 싶다면 위의 방법으로는 불가능합니다. 따라서 이때 사용하는 함수가 Q입니다. Model.objects.filter((Q(연령대='10대')|Q(연령대='30대')), 성별="여자")와 같이 처리할 수 있습니다. 여기서 만족하지 않고, 클라이언트로부터 받아온 데이터..