我的模型包含名称,学校,电子邮件,地址等字段。
我想找出name
和school
字段有相同条目的行?
eg:
name school email
abc mps abc@gmail.com
abc mps abc@gmail.com
xyz vps xyz@gmail.com
abc mps abc@gmail.com
poi vps poi@gmail.com
jkl vps jkl@gmail.com
类似于name
abc和school
mps是3个条目,对于xyz和vps,有2个条目
我可以嵌套for
循环和迭代方式来检查表中所有行的名称和学校字段。这将是性能损失(n * n)
还有其他方法可以找到答案吗?
答案 0 :(得分:0)
distinct()将达到目的。 以下将解决您的问题
model_name.objects.values_list('name').distinct()
如果你想要字典,那么你必须这样做
model_name.objects.values('name').distinct()
希望能解决你的问题!!
答案 1 :(得分:0)
我不确定我是否理解你,你只想得到 SAME 名称和学校的结果,或者只想得到 ONE 姓名和学校的结果?
这句话将返回名为' abc'的所有学校。和学校' mps'
result_list = model.objects.filter(name='abc').filter(school='mps')
如果您尝试仅为每个姓名和学校获得一个结果,则必须使用distinct() 像:
result_list = model.objects.filter(name='abc').filter(school='mps').distinct()
`