Django 多对多查询集

django many to many queryset

我有两个型号:

1-----

class Account(AbstractBaseUser, PermissionsMixin):
    email = models.EmailField(unique=True)
    name = models.CharField(max_length=150)
    phone = models.CharField(max_length=50)
    picture = models.ImageField(blank=True, null=True , upload_to='profile' )
    profession = models.ManyToManyField(Profession)

2-----

class Profession(models.Model):
    profession = models.CharField(max_length=50)

我想展示我拥有的所有职业 同时我想显示他们拥有这个职业的账户数量

喜欢这张照片 enter image description here

您可以像这样注释每个职业名称:

Profession.objects.values('profession').annotate(num_accounts=Count('account'))

这会给你这样的输出:

<ProfessionQuerySet [{'profession': 'SomeProfessionA', 'num_accounts': 22}, {'profession': 'SomeProfessionB', 'num_accounts': 20}, ...>