Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/341.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 从另一个模型获取公司列表和员工数量_Python_Django_Django Models - Fatal编程技术网

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'))#与员工模型中定义的相关_名称相同