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

Django中的查询条件封装总结

基本查询

  • 简单相等查询

    User.objects.filter(name="jane")
    
  • 包含查询(类似于SQL中的LIKE ‘%value%’)

    query = Q(name__contains="jane")
    # 或者忽略大小写的匹配
    query = Q(name__icontains="jane")
    

使用 Q 对象进行复杂查询

  • 组合多个条件(AND逻辑)

    from django.db.models import Q
    
    query = Q()
    if name:
        query &= Q(name__contains=name)
    if mobile:
        query &= Q(mobile__contains=mobile)
    query &= Q(type=2)  # 注意这里的更正
    
    users = User.objects.filter(query)
    
  • 或条件查询(OR逻辑)

    # 查找名字包含'jane'或者手机号码包含'138'的用户
    query = Q(name__contains='jane') | Q(mobile__contains='138')
    users = User.objects.filter(query)
    
  • 混合使用AND和OR逻辑

    # 查找名字包含'jane'且类型为2,或者手机号码包含'138'的用户
    query = (Q(name__contains='jane') & Q(type=2)) | Q(mobile__contains='138')
    users = User.objects.filter(query)
    

更多查询样例

  • 范围查询

    # 查找年龄在18到60之间的用户
    users = User.objects.filter(age__range=(18, 60))
    
  • 日期查询

    # 查找创建时间在特定日期之后的用户
    from datetime import date
    users = User.objects.filter(create_time__gte=date(2025, 3, 1))
    
  • 排除某些记录

    # 查找所有不是类型2的用户
    users = User.objects.exclude(type=2)
    
http://www.dtcms.com/a/71905.html

相关文章:

  • 解决 openjtalk.obj : error LNK2001: 无法解析的外部符号 __imp__PySequence_List 错误
  • C语言基础要素(016):入口条件循环:while与for
  • go 通过汇编分析栈布局和函数栈帧
  • SSM文物管理系统
  • chatgpt的一些prompt技巧
  • vue3设置全局滚动条样式
  • 1.5[hardware][day5]
  • 0CTF 2016 piapiapia 1
  • QT MVC 编程 MODEL/DELEGATE/VIEW(五)
  • day04_Java高级
  • OSPF与RIP联动实验
  • Java 并发编程——Java BIO NIO Socket编程
  • cursor全栈网页开发最合适的技术架构和开发语言
  • 进制转换(十进制相关)
  • 1.Qt SDK 的下载和安装
  • [Linux][经验总结]Ubuntu6.11.0 docker更换镜像源
  • Python3中的神秘错误:如何应对UnicodeDecodeError
  • CURL一文通
  • 考研系列-408真题计算机网络篇(10-17)
  • 《基于超高频RFID的图书馆管理系统的设计与实现》开题报告
  • HarmonyOS NEXT开发实战——HUAWEI DevEco Studio 开发指南
  • c++图论(二)之图的存储图解
  • linux (centos) 的 nodejs 安装全局包后使用命令无效
  • HCIP数通是啥?值钱吗?
  • 计算机操作系统进程(4)
  • 向量数据库原理及选型
  • 98.HarmonyOS NEXT跑马灯组件教程:MarqueeSection组件实现原理
  • Java基础编程练习第32题-定义接口(Biology、Animal)、类(Person)、子类(Pupil)(PTA选题)
  • Flask-WTForms表单验证中常见的正则表达式
  • 同一子网通信