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 小于等于