我想根据我的多对多字段(字符字段(中最常见的出现(模式(过滤/排除我的查询集:
例如,在下面的示例中,我想在包含学生教室的班级中进行过滤,其中"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')
你需要 Django 聚合文档
您的查询将是这样的(我不确定它是否是确切的查询,但使用文档和此示例,您将了解它是如何工作的(
Class.objects.filter(
students__name="David"
).annotate(
david_count=Count('students')
).order_by(
'david_count'
)