python - django 多对多查询集
问题描述
我有两个模型:
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)
我想显示我拥有的所有职业,同时我想显示他们拥有该职业的帐户数量
喜欢这张照片 在此处输入图像描述
解决方案
您可以像这样注释每个职业名称:
Profession.objects.values('profession').annotate(num_accounts=Count('account'))
这将为您提供如下输出:
<ProfessionQuerySet [{'profession': 'SomeProfessionA', 'num_accounts': 22}, {'profession': 'SomeProfessionB', 'num_accounts': 20}, ...>
推荐阅读
- django - Django REST Framework 序列化程序 PrimaryKeyRelatedField() 不在 GET 响应中添加对象
- jvm - 隐藏或禁用 Tomcat 命令行参数日志记录
- javascript - page.$$eval() 没有按预期工作(Puppeteer)
- azure-ad-b2c - Azure B2C - 在 Web 应用程序中使用隐藏的 iFrame 是否适用于 B2C 租户?
- xl-deploy - udm.DeploymentPackage 中的新属性在 xldeploy 中被禁用
- android - 将 ViewModel 与 ViewPagers 相结合
- javascript - 生成自定义输出链接
- javascript - VueJS 双向数据绑定绑定
- python - 从另一个文件替换一个文件中的文本
- javascript - 作为参数的函数