如何在对象过滤器上使用布尔值。例如 -
Emails.objects.filter(id=1 or id=2)
Emails.objects.filter(name='tom' and domain = 'gmail.com')
这些如何转化为可用的语法?谢谢。
答案 0 :(得分:5)
另一种做OR的方法是使用Q。您可以像布尔一样AND和OR它们
# Filter emails whose id is 1 or 2
Emails.objects.filter(Q(id=1) | Q(id=2))
当然,Q的预期用途是可以构建像
这样的查询# Filter emails whose id is 1 or name is 'tom'
Emails.objects.filter(Q(id=1) | Q(name='tom'))
要做AND,显而易见的方法是在Ignacio的答案中指定一个接一个的属性:)
答案 1 :(得分:4)
Emails.objects.filter(id__in=[1, 2])
Emails.objects.filter(name='tom', domain='gmail.com')