当前位置: 首页 > news >正文

Django ORM 字段查询表达式(Field lookup expressions)

在 Django ORM(以及 Django Filter / QuerySet API)中,
针对字段的比较操作(>、<、>=、<=、= 等)
都是通过 “字段查询表达式(Field lookup expressions)” 来实现的。


🔤 一、Django ORM 比较运算符对照表

比较运算含义Django 查询关键字(lookup)示例
=等于exact(或直接省略)price__exact=100price=100
>大于gt (greater than)price__gt=100
<小于lt (less than)price__lt=100
>=大于等于gte (greater than or equal)price__gte=100
<=小于等于lte (less than or equal)price__lte=100
!=不等于exclude(price__exact=100)~Q(price=100)不直接支持 ne
区间在范围内rangeprice__range=(50, 100)
模糊匹配包含(不区分大小写)icontainsname__icontains='pump'
模糊匹配开头匹配(不区分大小写)istartswithname__istartswith='acid'
模糊匹配结尾匹配(不区分大小写)iendswithname__iendswith='valve'
空值判断为空isnull=Truedate__isnull=True
不为空非空isnull=Falsedate__isnull=False
集合判断属于列表instatus__in=['new','done']

🧩 二、示例:在 ORM 查询中使用

from warehouse.models import Item# 大于
Item.objects.filter(price__gt=100)# 小于等于
Item.objects.filter(stock__lte=500)# 在范围内
Item.objects.filter(created_at__range=('2025-10-01', '2025-10-09'))# 等于(完全匹配)
Item.objects.filter(name__exact='Pump-A')# 模糊匹配
Item.objects.filter(name__icontains='pump')# 不等于
Item.objects.exclude(price__exact=0)

🧠 三、在 django-filter 中使用这些运算符

你可以让前端用这些“比较字母”来动态传参:

import django_filters
from .models import Itemclass ItemFilter(django_filters.FilterSet):price = django_filters.NumberFilter(field_name='price', lookup_expr='exact')price_gt = django_filters.NumberFilter(field_name='price', lookup_expr='gt')price_lt = django_filters.NumberFilter(field_name='price', lookup_expr='lt')price_gte = django_filters.NumberFilter(field_name='price', lookup_expr='gte')price_lte = django_filters.NumberFilter(field_name='price', lookup_expr='lte')class Meta:model = Itemfields = ['price']

📘 示例请求:

/api/items/?price_gt=100&price_lte=500

🧱 四、简写记忆口诀:

运算符Django 写法英文含义
>gtgreater than
<ltless than
>=gtegreater than or equal
<=lteless than or equal
=exactexactly equal

http://www.dtcms.com/a/461241.html

相关文章:

  • 设计模式--组合模式:统一处理树形结构的优雅设计
  • 推荐算法学习笔记(十九)阿里SIM 模型
  • 高级网站开发工程师证书现代网站建设
  • 只能在线观看的电影网站咋么做wordpress教程 菜单
  • echarts画一个饼图
  • 基于改进YOLO算法的果园环境中障碍物识别与检测技术研究
  • 三元锂电池和磷酸铁锂电池:从原子晶格到应用哲学的深度解析
  • vscode-background 扩展的原理、配置和使用
  • 2100AI相亲(三)
  • 时钟服务器主地址
  • 瑞安学校网站建设口碑好网站建设价格
  • 自己做的网站访问不了建设网站哪些公司好
  • SpringMVC启动流程
  • HTTP 请求方法与参数上传形式的关系
  • 如何减少 Elasticsearch 集群中的分片数量
  • 当通过API发送请求的方式自动触发Jenkins job报错HTTP Status 403 – Forbidden的解决办法
  • 一个网站如何工作流程建立网站需要哪些手续
  • H3C网络设备 实验二:搭建两个局域网,使两个局域网相互通信(路由器,固定ip)
  • 临平房产做网站的公司wordpress屏蔽功能org
  • Skywalking 的本地开发配置
  • iOS 上架 App 全流程实战,应用打包、ipa 上传、App Store 审核与工具组合最佳实践
  • JavaScript核心构成与基础语法详解2
  • 邹平网站建设公司淘宝网站开始怎么做
  • fs 文件系统:Node.js 操作磁盘的 “万能工具”
  • Android + iOS 手机抓包 App 实操教程
  • 智慧新零售时代:施易德系统平衡技术与人力,赋能门店运营
  • 标准编码与算法
  • Python获取变量名本身​​——varname库
  • 专业站全返利网站建设
  • 网站设计提案安阳市建设工程领域网站