Как использовать, ИЛИ модель Django использования фильтруют систему?

Кажется, что метод фильтра объектной модели Django автоматически использует И ключевое слово 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.%'

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

31
задан NotSimon 21 November 2016 в 17:31
поделиться

1 ответ

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

from django.db.models import Q
Publisher.objects.filter(Q(name__contains="press") | Q(country__contains="U.S.A"))
63
ответ дан 27 November 2019 в 22:05
поделиться
Другие вопросы по тегам:

Похожие вопросы: