TypeError: unsupported operand type(s) for |: 'bool' and 'Q'

TypeError: unsupported operand type(s) for |: 'bool' and 'Q'

我是 运行 Django 1.7,我在尝试执行以下操作时得到 TypeError: unsupported operand type(s) for |: 'bool' and 'Q'

class PersonList(generic.ListView):
    template_name = "persons/list.html"
    model = Person
    queryset = Person.objects.filter(Q(field1__isnull=True | Q(field2__isnull=True)))

在示例代码中,使用 models.Q 时括号不在应有的位置。

解决方案:

Person.objects.filter(Q(field1__isnull=True) | Q(field2__isnull=True))

注意右括号。