一、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))
标签:__,gt,对象,NewsInfo,Django,filter,objects From: https://www.cnblogs.com/Durant0420/p/18368338