基本条件查询所需数据
email_code_list = EmailVerifyCode.objects.filter(email=email,send_type=3).exclude(id=1) #查询类型为3的对应邮箱情况
查询某些数据中不包含某种情况的
email_code_list=EmailVerifyCode.objects.filter(send_type=3).exclude(id=1) #查询类型为3,且除了id为1 的对应邮箱情况
查询满足某列表中数据的所有数据
#通过用户查询中间表(用户搜藏表)对应的所有课程数据
userlove_course_list = request.user.userlove_set.all().filter(love_type=2)
#获取想要的所有课程id
userlove_course_id =[course.love_id for course in userlove_course_list]
#在课程表中,根据上面的id列表查找到所有课程(字段__in),在...中
course_list = CourseInfo.objects.filter(id__in=userlove_course_id)
使用Q对象进行限制条件之间 “或” 连接查询
查询同一个表中多个字段满足一个即可的
from django.db.models import Q
from .models import UserProfile
user_list = UserProfile.objects.filter(Q(username = email)|Q(email=email)) #在用户表中查询用户名或邮箱等于手动传的邮箱
使用 startwith 和 endswith 进行字段数据起始字符和结尾字符的条件查询
obj = User.objects.filter(name__startswith="X") # 查询以 "X" 开头的name字段,字段名和关键字之间用两个下划线连接
obj = User.objects.filter(email__endswith = "163.com") # 查询使用了163邮箱的用户
存在外键时,进行反向查询的方法
子查主,主表存在外键字段指向子表
course_list = request.user.course_set.all() # Course表中存在外键字段指向User表,查询Course表中user对应的信息