从另一个模型中获取公司列表以及员工数量



我有两个模型公司和员工,必须显示以下

之类的记录
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

最新更新