Django F() 的作用
F() 函数的作用
F()允许Django在未实际链接数据的情况下具有对数据库字段的值的引用。
通常情况下我们更新数据时需要先从数据库里将原数据取出后存在内存里,然后编辑某些属性,最后提交。
比如实现模糊查询时,查找 ID 比phone大的字段,通常我们会这么写:
num = Reporters.objects.get(name = 'phone') #取出phone的id
obj = UserInfo.objects.filter(id__gt = num) #gt表示大于
如果我们使用F()函数的话,上面的两行代码等价于下面这个:
from django.db.models import F #导包
obj = UserInfo.objects.filter(id__gt=F('phone'))
原理:当Django程序中出现F()时,Django会使用SQL语句的方式取代标准的Python操作。
上述代码中,python做的唯一的事情就是通过Django的F()函数创建了一条SQL语句然后执行而已。
django ORM中大于等于,小于等于,contains
- __gt 大于
- __gte 大于等于
- __lt 小于
- __lte 小于等于
- __contains,模糊查找