跳至主要內容

模型_数据的条件查询

刘春龙原创...大约 1 分钟PythonDjango教程文档

参考文档:https://docs.djangoproject.com/zh-hans/4.1/ref/models/querysets/#field-lookupsopen in new window

常用检索字段

字段检索,是在字段名后加 '__' 双下划线,再加关键字,类似 SQL 语句中的 where 后面的部分, 如: 字段名**关键字

  • exact :判断是否等于 value,一般不使用,而直接使用 '='
  • contains:是否包含,大小写敏感,如果需要不敏感的话,使用 icontains
  • startswith:以 value 开头,大小写敏感
  • endwith:以 value 结尾,大小写敏感
  • in:是否包含在范围内
  • isnull:是否为 null, 如:filter(name__isnull=Flase)
  • gt:大于,如:filter(sage__gt=30) , 年龄大于 30
  • gte:大于等于
  • lt:小于
  • lte:小于等于
# 获取ID等于6
Waiter.objects.filter(id__exact=6)
# 获取ID等于6
Waiter.objects.filter(id=6)
# 获取name名字包含"张"
Waiter.objects.filter(name__contains="张")
# 获取name名字包含"吕"
Waiter.objects.filter(name__contains="吕")
# 获取name名字以"袁"开头的
Waiter.objects.filter(name__startswith="袁")
# 获取name名字以"辽"结尾的
Waiter.objects.filter(name__endswith="辽")
# 获取name名字是"关羽和黄忠"的
Waiter.objects.filter(name__in=["关羽","黄忠"])
# 获取name名字为空的
Waiter.objects.filter(name__isnull=True)
# 获取id大于5的
Waiter.objects.filter(id__gt=5)
# 获取id小于5的
Waiter.objects.filter(id__lt=5)
# 获取id小于等于5的
Waiter.objects.filter(id__lte=5)
# 获取在id为1的餐厅工作的
Waiter.objects.filter(restaurant=1)
# 获取在id为1的餐厅工作的
Waiter.objects.filter(restaurant_id=1)
# 获取在name为肯德基的餐厅工作的
Waiter.objects.filter(restaurant__name="肯德基")
# 会报错,没有用俩个下划线!!!
# Waiter.objects.filter(restaurant_name="肯德基")






















 
 
 
 




提示

在查找中指定的字段必须是模型字段的名称

但有一个例外,如果是 ForeignKey 字段,则是属性名或者属性名+ _id,如代码中 23-26 行

上次编辑于:
贡献者: 刘春龙
评论
  • 按正序
  • 按倒序
  • 按热度
Powered by Waline v2.15.7