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的区别:

以前误以为getfilter的区别仅仅是filter返回多条,而get仅支持一条记录,直到使用related_name属性 才发现,两者的差异远不止如此,最本质的区别是

filter返回的值是一个queryset对象,

get 返回值是一个定义的model对象

使用get 返回的结果去访问子表对象可以成功,而使用filter就会出错,

                            技术分享

是因为queryset 对象没有realtaed_name属性,无法回溯到子表


以上是关于Django的orm中get和filter的不同的主要内容,如果未能解决你的问题,请参考以下文章

Django的orm中get和filter的不同

django orm 的查询条件

django orm中 get 与filter的区别

Django(17)orm查询操作

django orm如何作一个优雅一点的filter?

django get和filter方法的几点不同