gpt4 book ai didi

django - 使用外键在 Django 中计数

转载 作者:行者123 更新时间:2023-12-04 10:26:19 26 4
gpt4 key购买 nike

我有两个模型,用户和工作组,用户模型有一个来自工作组的外键。

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
我正在寻找的输出
  • 工作组 A-2
  • 工作组 B-1
  • 工作组 C-1
    我试过这个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/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com