0
我有這樣的模型和查詢Django的某一領域的兩個過濾總數
class Employer(Models.model)
name = ...
class JobTitle(Models.model)
name = ...
employer = models.ForeignKey(Employer)
和查詢
Employer.objects.select_related('jobtitle')
.filter(jtt__activatedate__range=[startdate,enddate])
.annotate(jtt_count=Count('jobtitle'))
.order_by('-jtt_count')[:5]
正如你看到它返回一個具有jobtitles的最大數量5僱主名單這與僱主有關,其激活日期在一定範圍內。
但是,我也想獲得每個僱主在該查詢中的總職位數。 當然,我可以遍歷每個僱主,並作出這樣的查詢JobTitle.objects.filter(employer = emp)
並考慮到查詢的長度,但它是不好的解決方案。
如何在該查詢中完成此操作? 儘管可能無法獲得總數和職位名稱的篩選數量,但我可能會得到每個emplyoer的工作項目,例如len(emp.jobtitle)
,但它也不起作用。
感謝
謝謝,這將確定工作,但它有效地工作? – brsbilgic
我認爲是的,它的確如此,因爲django只會執行1個查詢,唯一的區別是它不僅僅是'select field1,field2 ...',而且是內聯查詢:'select field1,field2,(select count (*)...),...' – sigurd