Django的orm中get和filter的不同
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Django的orm中get和filter的不同相关的知识,希望对你有一定的参考价值。
参考技术A get得到的是一个model对象,filter得到的是一组model对象,类型是queryset,是一个django定义的,可迭代的,可以当作是一个list操作,每个索引都是一个model对象。 get如果满足的条件大于一个的时候,会报错 #有点类似于如下: get相当与fetchon.django orm中 get 与filter的区别
django orm中 get 与filter的区别:
以前误以为get与filter的区别仅仅是filter返回多条,而get仅支持一条记录,直到使用related_name属性 才发现,两者的差异远不止如此,最本质的区别是
filter返回的值是一个queryset对象,
而get 返回值是一个定义的model对象,
使用get 返回的结果去访问子表对象可以成功,而使用filter就会出错,
是因为queryset 对象没有realtaed_name属性,无法回溯到子表
以上是关于Django的orm中get和filter的不同的主要内容,如果未能解决你的问题,请参考以下文章