【发布时间】:2020-10-08 15:20:14
【问题描述】:
拥有这些模型:
class AccidentJob(models.Model):
name = models.CharField(max_length=50)
class Accident(TimeStampedModel, models.Model):
job = models.ForeignKey(AccidentJob, on_delete=models.CASCADE)
我想要这样的东西:
[
{'job__name': 'Auxiliar de surtido', 'count': 2},
{'job__name': 'Técnico de mantenimiento', 'count': 1}
]
但我得到了这个:
[
{'job__name': 'Auxiliar de surtido', 'count': 1},
{'job__name': 'Auxiliar de surtido', 'count': 1},
{'job__name': 'Técnico de mantenimiento', 'count': 1}
]
这是我的查询:
from django.db.models import Count
Accident.objects.values(
"job__name"
).annotate(
count=Count('job__name')
).values("job__name", "count")
我可以使用 Python 来完成,但我更愿意让 PostgreSQL 来完成这项工作。
【问题讨论】:
标签: django django-orm