我有两个模型公司和员工,必须显示以下
之类的记录Company Name, Number of Employee
```python
class Company(models.Model):
name=models.CharField(max_length=20)
est=models.IntegerField(max_length=4)
class employee(models.Model):
name=models.CharField(max_length=20)
company=models.ForeignKey(Company)
```
如何编写django orm模型以获取细节?
from django.db.models import Count
Company.objects.values('name').annotate(emp_count=Count('employee'))
这将生成一个QuerySet
对象,
In [3]: Company.objects.values('name').annotate(emp_count=Count('employee'))
...:
Out[3]: <QuerySet [{'name': 'company_name_1', 'emp_count': 3}, {'name': 'company_name_2', 'emp_count': 2}]>
您可以将A RELASSED_NAME((放在外国关系中:
class Company(models.Model):
name=models.CharField(max_length=20)
est=models.IntegerField(max_length=4)
class employee(models.Model):
name=models.CharField(max_length=20)
company=models.ForeignKey(Company, related_name='employees')
然后使用计数从员工模型中获取计数,并向QuerySet注释值。像这样:
from django.db.models import Count
Company.objects.annotate(employee_count=Count('employees')) # same as related_name defined in employee model