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 @ 2024-08-19 23:20  未来可期_Durant  阅读(72)  评论(0)    收藏  举报