Django ORM F对象和Q对象查询

作者:世界尽头与你 时间:2023-10-23 15:33:04 

阅读文本前请参考此文章的数据表结构

Django提供了两个非常有用的工具:F对象和Q对象,方便了在一些特殊场景下的查询过程。

1.F对象查询

F对象用于操作数据库中某一列的值,它可以在没有实际访问数据库获取数据值的情况下对字段的值进行引用

使用F对象之前需要将它引入当前的环境中:

from django.db.models import F

如果要查询up小于等于down的Comment:

comment = Comment.objects.filter(up__lte=F('down'))

要查询所有up值大于down值2倍的Comment对象,可以这样实现:

comment = Comment.objects.filter(up__gt=F('down') * 2)

使用F查询让表中的某个字段值+1:

comment = Comment.objects.get(id=1)
comment.up = F('up') + 1
comment.save()

2.Q对象查询

使用Q对象之前需要将它引入当前的环境中:

from django.db.models import Q

如果想要查询up大于60或down大于60的所有Comment对象:

comment = Comment.objects.filter(Q(up__gt=60) | Q(down__gt=60))

Q对象也可以与关键字参数组合在一起使用,但是在这种情况下,Django规定,Q对象必须放在前面:

Django ORM F对象和Q对象查询

多个Q对象可以使用“&”(与)、“|”(或)运算符组合,产生一个新的Q对象。可以使用“”(非)运算符取反,即实现NOT查询❤️

来源:https://blog.csdn.net/Gherbirthday0916/article/details/127274199

标签:Django,F对象,Q对象查询,ORM
0
投稿

猜你喜欢

  • Python基于Socket实现的简单聊天程序示例

    2022-12-22 09:14:50
  • PHP中文件读、写、删的操作(PHP中对文件和目录操作)

    2023-11-22 06:03:23
  • vue的常用组件操作方法应用分析

    2024-05-21 10:17:13
  • Golang嵌入资源文件实现步骤详解

    2023-06-21 08:52:36
  • python 用正则表达式筛选文本信息的实例

    2023-04-29 14:12:26
  • JS中getElementsByClassName与classList兼容性问题解决方案分析

    2023-08-25 05:39:06
  • Oracle逗号分隔列转行实现方法

    2024-01-14 20:04:37
  • Python实现简单多线程任务队列

    2022-07-29 13:21:43
  • 关于AJAX缓存数据

    2008-03-26 12:11:00
  • 使用IIS调试asp程序检查错误的方法

    2007-09-13 21:54:00
  • Python基于多线程实现抓取数据存入数据库的方法

    2024-01-22 12:36:34
  • 深入探索数据库MySQL性能优化与复杂查询相关操作

    2024-01-26 20:25:11
  • asp 实现检测字符串是否为纯字母和数字组合的函数

    2009-10-04 20:39:00
  • Python使用pymongo模块操作MongoDB的方法示例

    2023-03-26 08:58:46
  • 比较一下看看自己掌握了多少SQL快捷键

    2009-01-04 14:04:00
  • Go语言操作Excel利器之excelize类库详解

    2024-04-28 09:12:47
  • 学会python自动收发邮件 代替你问候女友

    2023-07-08 17:01:49
  • asp 随机字符串函数

    2011-04-04 11:01:00
  • Jil,高效的json序列化和反序列化库

    2023-07-02 05:30:43
  • 解决pytorch 的state_dict()拷贝问题

    2022-10-05 22:03:57
  • asp之家 网络编程 m.aspxhome.com