Встречается на собеседованиях • сегодня

Как реализуется логика "или" в querySet в Django

В Django ORM логика "или" реализуется через Q объекты и оператор |.

Пример:

python
from django.db.models import Q

# Ищем записи, где поле title содержит 'django' ИЛИ author равен 'John'
queryset = Book.objects.filter(Q(title__contains='django') | Q(author='John'))

Можно комбинировать с & (И) и ~ (НЕ):

python
# (title содержит 'django' ИЛИ author 'John') И НЕ published=False
queryset = Book.objects.filter(
    (Q(title__contains='django') | Q(author='John')) & ~Q(published=False)
)

Q объекты особенно полезны для сложных запросов, где стандартные filter() недостаточно гибки.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы