Python Django过滤器在多对多字段中最常见
我想根据我的多对多字段(charfield)的最常见出现(模式)筛选/排除我的查询集: 例如,在我下面的示例中,我想在包含有学生的教室的班级中进行筛选,其中“David”是班级中最常见的名字。(Django版本1.9.2)Python Django过滤器在多对多字段中最常见,python,django,Python,Django,我想根据我的多对多字段(charfield)的最常见出现(模式)筛选/排除我的查询集: 例如,在我下面的示例中,我想在包含有学生的教室的班级中进行筛选,其中“David”是班级中最常见的名字。(Django版本1.9.2) 您需要django聚合 您的查询将是这样的(我不确定它是否是准确的查询,但使用文档和此示例,您将了解它的工作原理) “devid_count”应该是“david_count”吗?@david是的,这是打字错误:-) #models.py class Student(model
您需要django聚合 您的查询将是这样的(我不确定它是否是准确的查询,但使用文档和此示例,您将了解它的工作原理)
“devid_count”应该是“david_count”吗?@david是的,这是打字错误:-)
#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')
Class.objects.filter(
students__name="David"
).annotate(
david_count=Count('students')
).order_by(
'david_count'
)