Django ORM F对象和Q对象查询
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对象必须放在前面:
多个Q对象可以使用“
&
”(与)、“|
”(或)运算符组合,产生一个新的Q对象。可以使用“~
”(非)运算符取反,即实现NOT查询❤️
到此这篇关于Django ORM F对象和Q对象查询的文章就介绍到这了,更多相关Django F对象和Q对象查询内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
python 对dataframe下面的值进行大规模赋值方法
今天小编就为大家分享一篇python 对dataframe下面的值进行大规模赋值方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧2018-06-06Python调用SQLPlus来操作和解析Oracle数据库的方法
这篇文章主要介绍了Python调用SQLPlus来操作和解析Oracle数据库的方法,这样用SQL*Plus方式来分析Oracle中的数据就变得十分方便,需要的朋友可以参考下2016-04-04关于tensorflow中tf.keras.models.Sequential()的用法
这篇文章主要介绍了关于tensorflow中tf.keras.models.Sequential()的用法,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教2024-01-01
最新评论