似乎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.%'
然而,我想知道是否有办法让'AND'成为'OR'?我似乎无法在文档中找到它(奇怪的是,搜索'或'并不是很有用)。
答案 0 :(得分:60)
你可以使用Q objects做你想要的,通过按位对它们进行OR运算:
from django.db.models import Q
Publisher.objects.filter(Q(name__contains="press") | Q(country__contains="U.S.A"))