一尘不染

Django的filter()和get()方法之间的区别

django

之间有什么区别

mymodel=model.objects.get(name='pol')

mymodel=model.objects.filter(name='pol')

阅读 361

收藏
2020-03-27

共1个答案

一尘不染

在Django的查询集文档都对这个很清楚的:

get(**kwargs)¶

返回与给定查找参数匹配的对象,该参数应采用“字段查找”中所述的格式。

如果找到多个对象,则get()会引发MultipleObjectsReturned。MultipleObjectsReturned异常是模型类的属性。

如果找不到给定参数的对象,则get()会引发DidNotExist异常。此异常也是模型类的属性。

filter(**kwargs)

返回一个新的QuerySet,其中包含与给定查找参数匹配的对象。

基本上get()在要获取单个唯一对象以及filter()要获取与查找参数匹配的所有对象时使用。

2020-03-27