2009-06-09 4 views
1

누구나 장고 ORM을 통해 관련 모델을 조건부로 집계 한 쿼리를 생성하는 방법을 알고 있습니까?Django 조건부 집계

예를 들어, 물건을 판매하는 사이트를 운영하고 지난 7 일 동안 각 직원이 판매 한 금액을 알고 싶다고 가정 해 봅시다. 그것은 모든 판매를 통해이 작업을 수행하기에 충분한 간단합니다

q = Employee.objects.filter(type='salesman').annotate(total_sales = models.Sum('sale__total')) 

그들 사이의 다 대다 관계 직원 및 판매 모델을 가정. 좋아,하지만 지금은 어떻게하면 지난 7 일 동안의 모든 판매 (또는 임의의 시간 프레임)에이를 제한 할 수 있습니까? 아는 사람 있나요?

+0

하면 SELECT SUM (SALES에 대해 묻는) GROUP BY EMPLOYEE 쿼리? –

답변

2

좋아, 나는 이것을 아주 멀리까지 생각하지 않았다. 그 필터는 왼쪽으로 가지 (? 그것을 생각하지만, 어떻게 다른가 DB에 매핑하는 것)에 가입 처리 실현되지 않았기 때문에 확실한 대답은 :

Employee.objects.filter(type='salesman').filter(sale__timestamp__gte = start_date)\ 
     .exclude(sale__timestamp__gte = end_date).annotate(...