本文介紹 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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。