ChatCrawlerпоиск по публичному Telegram Открыть приложение
P

Python Community | Chat

сообщение · 2026-09-16 13:07 UTC
I
Ссылка
нажмите — покажем
‍🔥 Django Q() objects — один из самых полезных инструментов ORM, который многие используют слишком редко Q() позволяет собирать сложные условия для WHERE, комбинируя их через AND, OR и NOT. Пример: Pet.objects.filter( Q(last_given_treats__isnull=True) | Q(last_given_treats__lte=timezone.now() - timedelta(days=1)), treats_needed__gt=F("treats_given"), ) Особенно полезно для динамических фильтров: q = Q() for term in search_term.split(): q |= Q(name__icontains=term) Pet.objects.filter(q) Но есть ещё более важный момент. При фильтрации через related models два отдельных .filter() могут привести к двум JOIN и неожиданно изменить смысл запроса. Species.objects.filter( pets__name__icontains="meowy" ).filter( pets__treats_given=0 ) Это уже может искать одну запись по имени, а другую - по количеству treats. Если собрать условия в одном .filter() или через Q(), Django использует один JOIN и проверяет условия на одной и той же связанной записи. Очень полезный приём для сложных QuerySet, динамического поиска и composable business filters. https://www.better-simple.com/django/2026/09/09/nifty-feature-q-objects/ @Python_Community_ru
423 ·

Все сообщения за 16 сентября 2026 · Вся лента · оригинал в Telegram

Открыть в Telegram Каталог площадок Искать в ChatCrawler

Слепок открытой публичной ленты из поискового индекса ChatCrawler — «Google по публичному Telegram»; обновляется по мере обхода площадки. Время — UTC.

Только публичный контент, официальный API Telegram. О проекте · Вопросы · Чего мы не делаем · Убрать страницу из выдачи · Каталог