QuerySet的经常使用方法

QuerySet经常使用方法
使用 connection.queries 能够查看sql语句
filter 将知足条件的结果返回,返回值为QuerySet对象
exclude 将知足条件的结果过滤掉,返回值为QuerySet对象
annotate 给QuerySet中的每个对象都添加一个查询表达式,(Q,F,聚合函数)的字段
order_by 安装某个字段进行排序,默认为从小到大排序,若是想要重大到小能够在字段前加“-”,须要注意order_by能够传递多个参数,会按照前后级别进行排序,并且order_by还能够用annotate新增的字段来排序,注意:order_by重复调用会只会保存最后一个。
values:提取须要哪些字段,默认会把所有都提取出来。返回的结果是QuerySet,可是其中包裹的不是模型,而是字典,若是想要提取关联数据,那么能够经过F表达式来完成。values也可使用聚合函数
values_list 提取须要字段,返回QuerySet,其中包裹的元组,若是数据只有一条,则可使用flat=True进行扁平化处理,直接返回结果
all 方法:返回所有数据(返回包裹对象的QuerySet)
select_related : 能够将关联的对象一块儿查询出来,只能用于外键链接的形式(一对多或者一对一的形式)
prefetch_related : 使用的时候传入反向引用的时候调用的名称默认为 filed_set,使用这个方式能够用来查询多对一或者多对多的方式,也能够用来查询一对一或者一对多的,可是不推荐。
defer : 过滤掉不须要的字段,返回值是一个包裹着模型的QuerySet
only : 提取某些字段,返回一个包裹模型的QuerySet
get : 直接返回对象,只能返回一条数据,若是返回数据超过一条就会报错,若是没有匹配到任何数据也会报错。
create : 用于增长一条数据,而且将数据保存在数据库中,至关于先建立数据,而后调用save方法
get_or_create : 若是给定的条件存在数据就查找返回,若是不存在就建立一个,而后在返回,返回结果是一个元组,元组中两个内容,第一个是模型对象,第二个是bool值,若是没有建立返回False,若是建立了返还True。
bulk_create :能够一次性建立多条数据。
count :获取知足条件的数据的个数
first,last 分别返回QuerySet中第一条和最后一条数据
exists : 判断数据是否存在,存在返回True,不存在返回False
distinct : 去重,默认按照所有字段判断。注意若是和order_by同时使用会失效
update :更新数据
delete : 删除数据,须要注意:字段中on_delete的级联删除方式
相关文章
相关标签/搜索