queryset_1 | queryset_2 filter(Q(<condition_1>)|Q(<condition_2>))
第一种or查询方法:
queryset_1 | queryset_2
第二章or查询方法:
filter(Q(<condition_1>)|Q(<condition_2>))
# 第二种Q查询方法 endswith区分大小写,查询的是结尾字符
from django.db.models import Q qs = User.objects.filter(Q(first_name__endswith='程')|Q(last_name__startswith='谢')) # 输出及输出结果 print(qs) <QuerySet [<User: admin>, <User: yonghu3>]>
filter(<condition_1>, <condition_2>) queryset_1 & queryset_2 filter(Q(<condition_1>) & Q(<condition_2>))
qs1 = User.objects.filter( first_name__startswith = '霆', last_name__startswith = '谢' ) # 输出及输出结果 print(qs1) <QuerySet [<User: yonghu3>]>
qs2 = User.objects.filter( first_name__startswith = '霆' ) & User.objects.filter( last_name__startswith = '谢' ) # 输出及输出结果 print(qs2) <QuerySet [<User: yonghu3>]>
from django.db.models import Q qs3 = User.objects.filter(Q(first_name__startswith = '霆') &Q(last_name__startswith = '谢') ) # 输出及输出结果 print(qs3) <QuerySet [<User: yonghu3>]>
exclude(<condition>) filter(~Q(<condition>))
qs5 = User.objects.exclude(id=1) # 输出及输出结果 print(qs5) <QuerySet [<User: yonghu1>, <User: yonghu2>, <User: yonghu3>]>
from django.db.models import Q qs6 = User.objects.filter(~Q(id=1)) # 输出及输出结果 print(qs6) <QuerySet [<User: yonghu1>, <User: yonghu2>, <User: yonghu3>]>