exact
— 精确匹配
Q(name__exact='Great Wall') # 精确匹配 name 字段值为 'Great Wall'
iexact
— 忽略大小写的精确匹配
Q(name__iexact='Great Wall') # 忽略大小写匹配 name 字段值为 'Great Wall'
contains
— 匹配包含某个子字符串(大小写敏感)
Q(name__contains='Wall') # 匹配 name 字段中包含 'Wall'
icontains
— 忽略大小写的包含匹配
Q(name__icontains='wall') # 忽略大小写,匹配 name 字段中包含 'wall'
gt
— 大于(用于数值、日期等字段)
Q(price__gt=100) # 查询 price 字段大于 100 的记录
lt
— 小于(用于数值、日期等字段)
Q(price__lt=100) # 查询 price 字段小于 100 的记录
gte
— 大于等于
Q(price__gte=100) # 查询 price 字段大于等于 100 的记录
lte
— 小于等于
Q(price__lte=100) # 查询 price 字段小于等于 100 的记录
in
— 在给定的列表中
Q(id__in=[1, 2, 3]) # 查询 id 字段为 1、2 或 3 的记录
isnull
— 是否为空值
Q(name__isnull=True) # 查询 name 字段为空的记录
range
— 在指定范围内
Q(price__range=(100, 200)) # 查询 price 字段在 100 和 200 之间的记录
year
, month
, day
— 针对日期字段的查询
Q(created_at__year=2021) # 查询创建时间在 2021 年的记录
Q(created_at__month=6) # 查询创建时间在 6 月的记录
Q(created_at__day=15) # 查询创建时间在 15 号的记录
startswith
— 以指定字符串开头(大小写敏感)
Q(name__startswith='Great') # 查询 name 字段以 'Great' 开头的记录
istartswith
— 忽略大小写的以指定字符串开头
Q(name__istartswith='great') # 忽略大小写,查询 name 字段以 'great' 开头的记录
endswith
— 以指定字符串结尾(大小写敏感)
Q(name__endswith='Wall') # 查询 name 字段以 'Wall' 结尾的记录
Q(name__iendswith='wall') # 忽略大小写,查询 name 字段以 'wall' 结尾的记录