GJ.*_*GJ. 8 django many-to-many django-queryset
我有一个Person模型和一个Tag模型,它们之间有一个m2m.
我需要提取连接到给定Person查询集中的大多数记录的标记以及计数.
有没有一种优雅,有效的方法来使用Django ORM提取它?
更好的是,有没有办法通过一些注释获得整个标签分发?如何将所有连接到通过m2m连接的对象子集的对象拉出来?
谢谢!
这会给你最频繁的标签:
from django.db.models import Count
Tag.objects.filter(person__yourcriterahere=whatever [, morecriteria]).annotate(cnt=Count('person')).order_by('-cnt')[0]
Run Code Online (Sandbox Code Playgroud)
我需要提取与给定人员查询集中最多记录相关的标签以及计数。
我以前遇到过类似的问题。就我而言,m2m 关系是在Unit和Weapon模型之间定义的。我使用以下查询来找出每个人使用的武器数量Unit,并按武器数量的降序对它们进行排序。
from django.db.models import Count
q = Unit.objects.all().annotate(count = Count('weapons')).order_by('-count')
Run Code Online (Sandbox Code Playgroud)
我会根据您的要求调整查询:
q = User.objects.all().annotate(count = Count('tag')).order_by('-count')
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9670 次 |
| 最近记录: |