Django中F对象,Q对象与运算符

在Django的模型中F对象与Q对象比较常用的,所以单独说一下:

F对象

F对象位于django.dc.models模板下,使用的时候记得首先导入!!!

作用:F对象主要用于当模型的字段A与字段B进行比较的时候,如果A写在了等号的左边,则B 出现在等号的右边,通过F对象进行构造,用于两个列的比较。举个例子:

假设有数据模型类BookInfo,BookInfo中有属性read和commet,我们要找到阅读量(read)比评论量(commet)多的图书
BookInfo.objects.filter(read__gt=F('commit'))#返回一个集合

F对象使用在两个列之间的比较。

Q对象

Q对象位于django.dc.models模板下,使用的时候记得首先导入!!!

 

在实现逻辑或的操作时必须使用Q对象,话不多说直接上Demo

​
假设有数据模型类BookInfo,BookInfo中有属性title,我们要找主键小于6或者题目中包括1的书
BookInfo.objects.filter(Q(pk__lt=6)|Q(title__contains="1"))#返回符合条件的

​​

​

比较运算符:实现where 语句作为filter() exclude() get()的参数  

语法:属性名称__运算符=值(是两个下滑线)

常见的运算符:

 

 exact 判断,大小写敏感
contains  是否包含,大小写铭感
startwith 以什么值开头,大小写敏感
endwith  以什么值结束,大小写敏感
in    是否在哎包含的范围内  如 filter(pk__in=[2,4,6,8,])
以上四个前面加上i就不区分大小写 iexact,icontains,istaerwith,iendwith

 

  

 

比较运算符:

gt 大于
gte  大于等于
lt  小于
lte  小于等于

 

posted @ 2019-04-25 21:36  二锅头不上头  阅读(302)  评论(0编辑  收藏  举报