1.在ORM模型中contains和icontains都是查找目标中包含老师字符串的,唯一的区别是icontains对大小写不敏感,而contains对大小写是敏感的
Teacher.objects.filter(name__contains='老师') Teacher.objects.filter(name__icontains='老师')
2.在ORM模型中exact和iexact绝大多数情况下是相等的:
(1)exact在底层会被翻译成=
(2)iexact在底层会被翻译成like
Teacher.objects.filter(name__exact='老师1') Teacher.objects.filter(name__iexact='老师1')
3.在ORM模型中id__in=用于查询多个符合条件的结果,返回一个queryset类型
Student.objects.filter(name__in=['学生1','学生2','学生100'])
4.在ORM也可以关联查询,例如:想查找“学生1”科目的所有成绩,首先是要查询成绩所以要以分数表来当做目标开始查询
Score.objects.filter(student__name='学生1')
#如果只想要查询学生1的python课程的成绩可以使用:
Score.objects.filter(student__name='学生1', course__name='python')