Python 使用MongoEngine和Q构建查询抛出InvalidQueryError

Python 使用MongoEngine和Q构建查询抛出InvalidQueryError,python,django,mongoengine,Python,Django,Mongoengine,我试图使用MongoEngine和django.db.models.Q类构造一个简单的或查询 我的代码(从/manage.py shell运行)是: 我的models.py只是 from mongoengine import * class User(Document): username = StringField() email = StringField() 我尝试了几个不同的版本,但总是出现以下错误: Traceback (most recent call last)

我试图使用
MongoEngine
django.db.models.Q
类构造一个简单的
查询

我的代码(从
/manage.py shell
运行)是:

我的
models.py
只是

from mongoengine import *

class User(Document):
    username = StringField()
    email = StringField()
我尝试了几个不同的版本,但总是出现以下错误:

Traceback (most recent call last):
  File "<console>", line 1, in <module>
  File "venv/lib/python2.7/site-packages/mongoengine/queryset/base.py", line 193, in filter
    return self.__call__(*q_objs, **query)
  File "venv/lib/python2.7/site-packages/mongoengine/queryset/base.py", line 109, in __call__
    raise InvalidQueryError(msg)
InvalidQueryError: Not a query object: (OR: ('username', 'foo'), ('email', 'bar')). Did you intend to use key=value?

我不熟悉Python和Django,但这似乎相当简单。我做错了什么?

结果是我导入了错误的
Q
类。对于
MongoEngine
,它应该是:

from mongoengine.queryset.visitor import Q

访客是固定的还是模型名?@KaushikMakwana,如果我没弄错你的问题,
visitor
在这里是固定的,而不是模型名。
dj-database-url==0.3.0
dj-static==0.0.6
Django==1.8
django-toolbelt==0.0.1
gunicorn==19.3.0
mongoengine==0.9.0
psycopg2==2.6
pymongo==2.8
static3==0.5.1
from mongoengine.queryset.visitor import Q