filter()
filter() возвращает QuerySet со всеми объектами, которые соответствуют переданным условиям. Если подходящих объектов нет, вернётся пустой QuerySet, а не ошибка.
published_articles = Article.objects.filter(is_published=True)
exclude()
exclude() возвращает QuerySet с объектами, которые не соответствуют условию.
drafts = Article.objects.exclude(is_published=True)
get()
get() используют, когда ожидается ровно один объект. Если объект не найден, Django выбрасывает исключение DoesNotExist; если найдено больше одного, возникает MultipleObjectsReturned.
article = Article.objects.get(pk=1)
Примеры lookups
articles = Article.objects.filter(title__icontains='django')
recent_articles = Article.objects.filter(created_at__year=2026)
Как ответить на собеседовании
filter() возвращает подходящий набор объектов, exclude() исключает объекты по условию, а get() нужен для получения одного объекта. Для get() важно обработать ситуацию, когда объект не найден или найдено несколько записей.