我想基于我的多对多字段中最常见的事件(模式)来过滤/排除我的查询集:
例如,在下面的示例中,我想在包含教室的类中过滤,其中“David”是班级中最常见的名称。 (Django版本1.9.2)
#models.py
class Student(models.Model):
name = models.CharField()
class Class(models.Model):
name = models.CharField()
students = models.ManyToManyField(Student)
#views.py
Class.objects.filter(students__mode = 'David')
答案 0 :(得分:0)
你需要django聚合doc
您的查询将是这样的(我不确定它是否是确切的查询,但使用文档和此示例您将了解它是如何工作的)
Class.objects.filter(
students__name="David"
).annotate(
david_count=Count('students')
).order_by(
'david_count'
)