Python 从另一个模型获取公司列表和员工数量
我有两个模型公司和员工,必须显示如下记录Python 从另一个模型获取公司列表和员工数量,python,django,django-models,Python,Django,Django Models,我有两个模型公司和员工,必须显示如下记录 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 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}]>
[3]中的:Company.objects.values('name')。注释(emp_count=count('employee'))
...:
出[3]:
您可以在外键关系中放置,如下所示:
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')
然后使用从employee模型中获取计数,并将值注释到queryset。这样地:
from django.db.models import Count
Company.objects.annotate(employee_count=Count('employees')) # same as related_name defined in employee model
从django.db.models导入计数
Company.objects.annotate(employee_count=count('employees'))#与员工模型中定义的相关_名称相同