Django 条件过滤查询

Django 条件过滤查询

1. 条件选取 QuerySet

filter表示 = ;exclude表示 !=;distinct表示去重复

语法功能
__exact精确查询
__iexact精确查询,忽略大小写
__contains包含
__icontains包含,忽略大小写
__gt大于
__gte大于等于
__lt小于
__lte小于等于
__in存在于list中
__startswith开头包含
__istartswith开头包含,忽略大小写
__endswith结尾包含
__iendswith结尾包含,忽略大小写
__range在范围里
__year日期字段查询年
__month日期字段查询月
__day日期字段查询日
__isnull字段为空

2. 多表查询

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
# 模型
class A(models.Model):
    name = models.CharField(max_length=10

class B(models.Model):
    a = models.ForeignKey(A)

# 查询语句
B.objects.filter(a__name__contains='XXXX')
# 作用:查询B表中外键aa所对应的表(即A表),表中字段 name 包含searchtitle的B表对象

3. 反向查询

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
# 模型
class A(models.Model):
   name = models.CharField(max_length=10)
  
class B(models.Model):
   aa = models.ForeignKey(A, related_name="FAN")
   bb = models.CharField(max_length=10)

# 查询语句
A.objects.filter(FAN__bb='XXXX')
# 作用:B.aa=A 且 B.bb=XXXX
Licensed under CC BY-NC-SA 4.0
最后更新于 Apr 24, 2023 22:40 +0800
使用 Hugo 构建
主题 StackJimmy 设计