Подтвердить что ты не робот

Как использовать OR с помощью системы фильтров Django?

Кажется, что метод фильтра объектной модели Django автоматически использует ключевое слово AND SQL.

Например:

>>> Publisher.objects.filter(name__contains="press", country__contains="U.S.A")

автоматически преобразуется во что-то вроде:

SELECT ... 
FROM publisher
WHERE name LIKE '%press%'
AND country LIKE '%U.S.A.%'

Однако мне было интересно, есть ли способ сделать это "И" "ИЛИ"? Я не могу найти его в документации (как ни странно, поиск "или" на самом деле не очень полезен).

4b9b3361

Ответ 1

Вы можете использовать объекты Q, чтобы делать то, что вы хотите, путем поразрядного их объединения:

from django.db.models import Q
Publisher.objects.filter(Q(name__contains="press") | Q(country__contains="U.S.A"))