2009-06-09 94 views
1

有誰知道我會通過django ORM生成一個有條件地聚合相關模型的查詢嗎?Django條件彙總

比方說,例如,您運行一個銷售東西的網站,並且您想知道每個員工在過去七天內銷售了多少。在所有銷售中這樣做很簡單:

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

假設員工和銷售模式之間存在多對多關係。好的,但是現在我怎麼去約束這七天所有銷售額(或任意時間範圍)呢?有人知道嗎?

+0

你是詢問SELECT SUM(SALES )GROUP BY員工查詢? – 2009-06-09 18:49:29

回答

2

好吧,我想我沒有想到通過很遠。我不知道該過濾器處理的事情有左連接(雖然思考它,這是怎麼回事會映射到數據庫?),所以答案顯然是:

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