本文介绍 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.")
相关用法
- Python Django QuerySet.get_or_create用法及代码示例
- Python Django QuerySet.select_related用法及代码示例
- Python Django QuerySet.union用法及代码示例
- Python Django QuerySet.latest用法及代码示例
- Python Django QuerySet.values用法及代码示例
- Python Django QuerySet.intersection用法及代码示例
- Python Django QuerySet.none用法及代码示例
- Python Django QuerySet.exclude用法及代码示例
- Python Django QuerySet.update_or_create用法及代码示例
- Python Django QuerySet.prefetch_related用法及代码示例
- Python Django QuerySet.first用法及代码示例
- Python Django QuerySet.annotate用法及代码示例
- Python Django QuerySet.dates用法及代码示例
- Python Django QuerySet.values_list用法及代码示例
- Python Django QuerySet.select_for_update用法及代码示例
- Python Django QuerySet.order_by用法及代码示例
- Python Django QuerySet.bulk_update用法及代码示例
- Python Django QuerySet.in_bulk用法及代码示例
- Python Django QuerySet.defer用法及代码示例
- Python Django QuerySet.aggregate用法及代码示例
- Python Django QuerySet.reverse用法及代码示例
- Python Django QuerySet.count用法及代码示例
- Python Django QuerySet.exists用法及代码示例
- Python Django QuerySet.explain用法及代码示例
- Python Django QuerySet.create用法及代码示例
注:本文由纯净天空筛选整理自djangoproject.com大神的英文原创作品 django.db.models.query.QuerySet.get。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。