TypeError:不支持的操作数类型|:'bool'和'Q'[关闭]

Posted

技术标签:

【中文标题】TypeError:不支持的操作数类型|:\'bool\'和\'Q\'[关闭]【英文标题】:TypeError: unsupported operand type(s) for |: 'bool' and 'Q' [closed]TypeError:不支持的操作数类型|:'bool'和'Q'[关闭] 【发布时间】:2015-03-27 21:25:48 【问题描述】:

我正在运行 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)))

【问题讨论】:

【参考方案1】:

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

解决方案:

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

注意右括号。

【讨论】:

以上是关于TypeError:不支持的操作数类型|:'bool'和'Q'[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

TypeError:不支持的操作数类型/:'str'和'str'

TypeError: *: 'int' 和 'NoneType' 不支持的操作数类型

TypeError:&:'str'和'str'不支持的操作数类型

TypeError: 不支持的操作数类型 -: 'int' 和 'list'

TypeError:不支持的操作数类型/:'float'和'datetime.timedelta'

TypeError: 不支持的操作数类型 -: 'datetime.date' 和 'str'