模型对象中有一个 objects属性,该属性是管理器 Manager类型的对象,几乎所有的方法都是通过该对象执行的。通过该方法可以进行数据库表添加数据
Q对象
filter()等方法中的关键字参数查询都是并且( ‘AND’ )的,如果需要执行更复杂的查询( 例如 OR语句 ),那么可以使用 Q对象
from django.db.models import Q# 等同于 SELECT * FROM 表(类)名 WHERE 字段 LIKE '检索条件' OR 字段 LIKE '检索条件'对象 = 类名.objects.filter(Q(字段_检索条件))| Q((字段_检索条件))
# 等同于 SELECT * FROM 表(类)名 WHERE 字段 LIKE '检索条件' AND (字段 LIKE '检索条件' OR 字段 LIKE '检索条件')对象 = 类名.objects.filter(Q(字段_检索条件), Q(字段_检索条件))| Q((字段_检索条件))
对象 = 类名.objects.filter(Q(字段_检索条件), Q(字段_检索条件), ~Q(字段_检索条件))
- Q对象用于封装一组关键字参数,可以使用 & 和 |、~ 操作符组合
- 当一个操作符在两个 Q对象上使用时,它产生一个新的 Q对象
F对象
属性对比
from django.db.models import F# 等价于 SELECT * FROM 表名 WHERE 字段 > 字段类名.objects.filter(字段__gt= F('字段'))
运算符
# 等价于 SELECT * FROM 表名 WHERE 字段 > 字段 + 10类名.objects.filter(字段__gt= F('字段') + 10)# 等价于 UPDATE 表名 SET 字段类名.objects.update(字段= F('字段') + 10)
