mongoengine 没有在 setting.py 中定义,尽管 pip 有它

mongoengine is not defined in setting.py though pip has it

mongoengine 没有在 setting.py 中定义,尽管 pip 有它。

pip列表显示 pip list show

经过多次调试,我认为setting.py导入mongoengine失败。 然后我尝试降级mongoengine、pymongo和升级django,但没有任何改变。

错误代码显示

raise ImproperlyConfigured("setting.DATABASES is improperly configured. " django.core.exceptions.ImproperlyConfigured: setting .DATABASES is improperly configured.Pleas supply the ENGINE value. check ...

        INSTALLED_APPS = (
            'django.contrib.admin',
            'django.contrib.auth',
            'django.contrib.contenttypes',
            'django.contrib.sessions',
            'django.contrib.messages',
            'django.contrib.staticfiles',
            #mongo
        )

        MIDDLEWARE_CLASSES = (
            'django.contrib.sessions.middleware.SessionMiddleware',
            'django.middleware.common.CommonMiddleware',
            'django.middleware.csrf.CsrfViewMiddleware',
            'django.contrib.auth.middleware.AuthenticationMiddleware',
            'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
            'django.contrib.messages.middleware.MessageMiddleware',
            'django.middleware.clickjacking.XFrameOptionsMiddleware',
            'django.middleware.security.SecurityMiddleware',

        )


        # Database -MONGODB
        DATABASES = {
            'default': {
                'ENGINE': 'django.db.backends.dummy'
            }
        }

        from mongoengine import connect
        connect('employeedb', username='woosungchu', password='1234')

        SESSION_ENGINE = 'mongoengine.django.sessions'
        SESSION_SERIALIZER = 'mongoengine.django.sessions.BSONSerializer'

mongoengine 不是 django 应用程序,它是一个普通的 python 包,因此您不需要在 setting.py 中指定它。 要将 mongoengine 与 django 一起使用,您只需导入它,与使用普通 python 包的方式完全相同。 这同样适用于 pymongo,它是一个 noraml python 包。

您收到此错误是因为您没有指定后端。 您使用的 django.db.backends.dummy 不是真正的后端。 查看此 question 了解更多信息。