當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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