如何使用Django 1.8 ORM來計算對象具有多少個成員?Django 1.8:查詢集成員的註釋數不經過濾
例如: 我該如何按軟件計數排序所有工人,他們的公司正在使用?
- 比爾3(Windows和Office,Visio中)
- 湯姆2(Windows和Office)
- 安東1(辦事處)
- 彼得0
- 斯蒂芬0
代碼:
def Software(model.Model):
name = models.CharField(max_length=200)
def Company(models.Model):
software = models.ManyToManyField(Software)
def Worker(models.Model):
company = models.ForeignKey(Company)
software = Software.objects.filter(price>60) # [<Software: Windows>,...]
workers = Worker.objects.filter(company__software__in=software).
annotate(software_count=Count('company__software‘))
for worker in workers:
print „%s %s (%s)" % (worker.name, worker.software_count, ...)
棘手的部分是我不想過濾但只想要註釋給定列表使用的軟件的計數。
任何幫助理解:-)
Thx爲輸入。是的 - 這給出了* all *軟件的數量。我需要像'Worker.objects.annotate(software_count = Count(company_software_in = software))' – buLLfisH