# models.py
from django.db import models
class Elephant(models.Model):
location = models.ForeignKey(Location, on_delete=models.CASCADE)
families = models.ForeignKey(Families, on_delete=models.CASCADE)
def add_families_and_locations_counts(elephants):
return elephants.annotate(
families_number=Count('families'),
location_number=Count('location')
)
# Run
output = add_families_and_locations_counts(elephants)
在上文中,计数不正确。如何获得正确的计数?
您想要计算不同的外键模型实例。
将注释功能更新为以下内容:
def add_families_and_locations_counts(elephants):
return elephants.annotate(
families_number=Count('families', distinct=True),
location_number=Count('location', distinct=True)
)