在Django中的objects.filter()上使用布尔值

Dav*_*542 1 django django-models

我如何在对象过滤器上使用布尔值.例如 -

Emails.objects.filter(id=1 or id=2)

Emails.objects.filter(name='tom' and domain = 'gmail.com')

这些将如何转化为可用的语法?谢谢.

phu*_*ehe 5

另一种方法或者说是用Q.你可以像布尔一样对它们进行AND和OR

# Filter emails whose id is 1 or 2
Emails.objects.filter(Q(id=1) | Q(id=2))
Run Code Online (Sandbox Code Playgroud)

当然,Q的预期用途是你可以构造像这样的查询

# Filter emails whose id is 1 or name is 'tom'
Emails.objects.filter(Q(id=1) | Q(name='tom'))
Run Code Online (Sandbox Code Playgroud)

要做到和明显的方法是在Ignacio的答案中指定一个接一个的属性:)