当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python Django QuerySet.get用法及代码示例


本文介绍 django.db.models.query.QuerySet.get 的用法。

声明

get(*args, **kwargs)

返回与给定查找参数匹配的对象,该参数应采用 Field lookups 中说明的格式。您应该使用保证唯一的查找,例如唯一约束中的主键或字段。例如:

Entry.objects.get(id=1)
Entry.objects.get(Q(blog=blog) & Q(entry_number=1))

如果您希望查询集已经返回一行,则可以使用不带任何参数的 get() 来返回该行的对象:

Entry.objects.filter(pk=1).get()

如果 get() 没有找到任何对象,则会引发 Model.DoesNotExist 异常:

Entry.objects.get(id=-999) # raises Entry.DoesNotExist

如果 get() 找到多个对象,则会引发 Model.MultipleObjectsReturned 异常:

Entry.objects.get(name='A Duplicated Name') # raises Entry.MultipleObjectsReturned

这两个异常类都是模型类的属性,并且特定于该模型。如果要处理来自不同模型的多个get() 调用的此类异常,可以使用它们的通用基类。例如,您可以使用 django.core.exceptions.ObjectDoesNotExist 来处理来自多个模型的 DoesNotExist 异常:

from django.core.exceptions import ObjectDoesNotExist

try:
    blog = Blog.objects.get(id=1)
    entry = Entry.objects.get(blog=blog, entry_number=1)
except ObjectDoesNotExist:
    print("Either the blog or entry doesn't exist.")

相关用法


注:本文由纯净天空筛选整理自djangoproject.com大神的英文原创作品 django.db.models.query.QuerySet.get。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。