在 mongoengine 中堆叠多个过滤器查询

Mih*_*csu 2 django mongoengine

如何运行以下命令:

someQuerySet.filter(keyword='someKey')
someQuerySet.filter(keyword='someOtherKey')
Run Code Online (Sandbox Code Playgroud)

InvalidQueryError: Duplicate query conditions每当我尝试这样做时,我都会得到。我知道可以按值列表进行过滤,但现在,我需要进行单独的过滤。

后来编辑:我实际上正在使用:

someQuerySet.filter(keyword__ne='someKey')
someQuerySet.filter(keyword__ne='someOtherKey')
Run Code Online (Sandbox Code Playgroud)

jpr*_*itt 6

您可以像这样构建 Q 对象:

from django.db.models import Q

filters = Q(keyword='someKey')
…
filters = filters | Q(keyword='someOtherKey')

someQuerySet.filter(filters)
Run Code Online (Sandbox Code Playgroud)

这将基本上创建一个WHERE像这样的子句:WHERE keyword = 'someKey' OR keyword = 'someOtherKey'

我是凭记忆这样做的,所以如果这不起作用,请告诉我,我将查看我过去的一些代码。