Not*_*mon 31 python sql django
似乎Django的对象模型过滤器方法自动使用AND SQL关键字.
例如:
>>> Publisher.objects.filter(name__contains="press", country__contains="U.S.A")
Run Code Online (Sandbox Code Playgroud)
将自动转换为:
SELECT ...
FROM publisher
WHERE name LIKE '%press%'
AND country LIKE '%U.S.A.%'
Run Code Online (Sandbox Code Playgroud)
但是,我想知道是否有办法让'AND'成为'OR'?我似乎无法在文档中找到它(奇怪的是,搜索'或'并不是真的有用).
Wil*_*hen 63
你可以使用Q对象做你想要的,通过按位对它们进行OR运算:
from django.db.models import Q
Publisher.objects.filter(Q(name__contains="press") | Q(country__contains="U.S.A"))
Run Code Online (Sandbox Code Playgroud)