Что такое оператор Q в Django ORM

Python Middle Без компании
Что такое оператор Q в Django ORM
Ответы
Оператор `Q` в Django ORM позволяет создавать сложные SQL-запросы с использованием логических операторов (`AND`, `OR`, `NOT`). Он особенно полезен, когда нужно комбинировать условия в `filter()` или `exclude()`. Пример: ``` from django.db.models import Q # Ищем статьи, которые либо опубликованы, либо имеют заголовок "Важное" Article.objects.filter(Q(published=True) | Q(title="Важное")) # Комбинирование условий User.objects.filter( Q(is_active=True) & (Q(username__startswith='a') | Q(email__endswith='@example.com')) ) ``` Ключевые особенности: - Поддерживает операторы `|` (OR), `&` (AND), `~` (NOT) - Можно использовать для динамического построения запросов - Работает с `filter()`, `exclude()`, `get()` - Позволяет создавать более читаемые запросы по сравнению с обычными цепочками `filter()`