Метод get
Метод get применяется к QuerySet и возвращает
одну запись, соответствующую переданным условиям.
Если записей, удовлетворяющих условиям, нет,
выбрасывается исключение DoesNotExist. Если
найдено более одной записи, выбрасывается исключение
MultipleObjectsReturned. Метод полезен, когда
требуется получить конкретный объект по уникальному
полю, например, по первичному ключу.
Синтаксис
Model.objects.get(**conditions)
Пример
Давайте получим статью с идентификатором 1:
from myapp.models import Article
article = Article.objects.get(id=1)
print(article.title)
Результат выполнения кода:
"Первая статья"
Пример
Давайте получим статью по заголовку (уникальное поле):
from myapp.models import Article
article = Article.objects.get(title="Django Basics")
print(article.id, article.status)
Результат выполнения кода:
"5 published"
Пример
Давайте получим статью по двум условиям:
from myapp.models import Article
article = Article.objects.get(
status='published',
category__name='Python'
)
print(article.title)
Результат выполнения кода:
"Работа с методами QuerySet"
Обработка исключений
Важно обрабатывать исключения, так как метод get
может их выбрасывать:
from myapp.models import Article
from django.core.exceptions import ObjectDoesNotExist
try:
article = Article.objects.get(id=999)
print(article.title)
except ObjectDoesNotExist:
print("Статья не найдена")
Результат выполнения кода:
"Статья не найдена"