Django的filter()和get()方法之间的区别 [英] Difference between Django's filter() and get() methods

查看:126
本文介绍了Django的filter()和get()方法之间的区别的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

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


解决方案

Django QuerySet文档非常清楚: / p>

get(** kwargs)¶


返回与给定的
查找参数匹配的对象,该参数应在
中,字段查找中描述的格式。



获取()如果找到多个对象,则会引发MultipleObjectsReturned

MultipleObjectsReturned异常是
模型类的一个属性。



get()引发一个DoesNotExist异常
如果一个对象wasn'找到
给定参数。这个例外是
也是模型类的一个属性。


filter(** kwargs)


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


当您想要获取单个唯一对象时,基本上使用get,并在要获取与查找参数匹配的所有对象时进行过滤。


What is the difference between

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

and

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

解决方案

The Django QuerySet docs are very clear on this:

get(**kwargs)¶

Returns the object matching the given lookup parameters, which should be in the format described in Field lookups.

get() raises MultipleObjectsReturned if more than one object was found. The MultipleObjectsReturned exception is an attribute of the model class.

get() raises a DoesNotExist exception if an object wasn't found for the given parameters. This exception is also an attribute of the model class.

filter(**kwargs)

Returns a new QuerySet containing objects that match the given lookup parameters.

Basically use get when you want to get a single unique object, and filter when you want to get all objects that match your lookup parameters.

这篇关于Django的filter()和get()方法之间的区别的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆