我有两个模型,用户和工作组,用户模型有一个来自工作组的外键。
class User(AbstractUser):
jobgroup = models.ForeignKey(JobGroup, on_delete=models.CASCADE, null=True, blank=True)
def __str__(self):
return self.username
class JobGroup(models.Model):
group_name = models.CharField(max_length=50, unique=True, blank=True, null=True)
def __str__(self):
return self.group_name
我想统计作业组分配给用户的次数 E.G 用户 1 - 作业组 A、用户 2 - 作业组 B、用户 3-作业组 A、用户 4-作业组 C
我正在寻找的输出
我试过这个
jobcount=User.objects.all().values('jobgoup__group_name').annotate(total=Count('jobgroup__group_name'))
但它没有用。它返回 None 最佳答案
请不要使用.values(..)
,它完全破坏了模型定义的层。您可以简单地注释您的 JobGroup
对象按相关数量User
s:
from django.db.models import Count
JobGroup.objects.annotate(
nuser=Count('user')
)
JobGroup
从此查询集产生的对象将有一个额外的属性 .nuser
包含相关数量User
对象。
关于django - 使用外键在 Django 中计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60622526/