Django:F对象和Q对象

一、F对象

之前的查询都是对象的属性与常量值比较,两个属性怎么比较呢?

作用:用于类属性之间的比较

# 使用之前需要先导入
from django.db.models import F
# 查询阅读量大于等于评论量的新闻
NewsInfo.objects.filter(read__gte=F('comment'))

可以在F对象上使用算数运算

# 查询阅读量大于2倍评论量的图书
NewsInfo.objects.filter(read__gt=F('comment') * 2)

二、Q对象

作用:用于查询时条件之间的逻辑关系。 and or not,可以对Q对象进行& | ~ 操作
# 使用之前需要先导入
from django.db.models import Q

逻辑与(and) :&

# 查询阅读量大于300且评论量大于10的新闻的数据
# 不使用Q对象
NewsInfo.objects.filter(read__gt=300,comment__gt=10)

# 使用Q对象
NewsInfo.objects.filter(Q(read__gt=3)&Q(comment__gt=10))

逻辑或(or) : |

# 查询id大于3或者阅读量大于30的新闻的信息
NewsInfo.objects.filter(Q(read__gt=3)|Q(comment__gt=10))

逻辑非(not) : ~

# 查询id不等于2的新闻信息
NewsInfo.objects.filter(~Q(id=2))

 

Django:基础查询语法

posted @   未来可期_Durant  阅读(38)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
历史上的今天:
2021-08-19 Vue|退出功能
点击右上角即可分享
微信分享提示