django过滤器中的逻辑运算

时间:2018-01-10 11:40:29

标签: python django django-q

我需要将查询集放在:

(a="a" AND b=None) OR (a=None AND b="b")

我知道django中的Q对象,但这种语法不起作用:

cls.objects.filter(models.Q(a="a", b=None) | models.Q(a=None, b="b"))

我绝对相信我的数据库包含预期的对象。但我得到的只是空的查询集 我想这里的语法有些问题。但在哪里?
API

1 个答案:

答案 0 :(得分:2)

cls.objects.filter(models.Q(a="a", b='None') | models.Q(a='None' AND b="b"))

试试这个