【发布时间】:2015-07-27 20:14:12
【问题描述】:
我有一个 MongoDB 后端,在python3 manage.py runserver 时遇到此错误。
Traceback(最近一次调用最后一次): 包装器中的文件“hct/.local/lib/python3.4/site-packages/Django-1.8.3-py3.4.egg/django/utils/autoreload.py”,第 225 行 fn(*args, **kwargs) 文件“hct/.local/lib/python3.4/site-packages/Django-1.8.3-py3.4.egg/django/core/management/commands/runserver.py”,第 112 行,inner_run self.check_migrations() 文件“hct/.local/lib/python3.4/site-packages/Django-1.8.3-py3.4.egg/django/core/management/commands/runserver.py”,第 164 行,在 check_migrations 执行器 = MigrationExecutor(连接[DEFAULT_DB_ALIAS]) init中的文件“hct.local/lib/python3.4/site-packages/Django-1.8.3-py3.4.egg/django/db/migrations/executor.py”,第 19 行> self.loader = MigrationLoader(self.connection) init 中的文件“hct/.local/lib/python3.4/site-packages/Django-1.8.3-py3.4.egg/django/db/migrations/loader.py”,第 47 行强> self.build_graph() 文件“hct/.local/lib/python3.4/site-packages/Django-1.8.3-py3.4.egg/django/db/migrations/loader.py”,第 182 行,在 build_graph self.applied_migrations = recorder.applied_migrations() 文件“hct/.local/lib/python3.4/site-packages/Django-1.8.3-py3.4.egg/django/db/migrations/recorder.py”,第 59 行,在应用迁移 self.ensure_schema() 文件“hct/.local/lib/python3.4/site-packages/Django-1.8.3-py3.4.egg/django/db/migrations/recorder.py”,第 52 行,在 ensure_schema 使用 self.connection.schema_editor() 作为编辑器: 文件“hct/.local/lib/python3.4/site-packages/Django-1.8.3-py3.4.egg/django/db/backends/base/base.py”,第 503 行,在 schema_editor '这个数据库包装器的 SchemaEditorClass 属性仍然是 None') NotImplementedError: 这个数据库包装器的 SchemaEditorClass 属性仍然是 None
我在 settings.py 中做了以下更改 -
在已安装的应用中添加
'djangotoolbox',
settings.py 中的数据库配置 -
DATABASES = {
'default': {
'ENGINE': 'django_mongodb_engine',
'NAME': 'dbname',
'HOST': 'dbhost',
'USER': 'dbuser',
'PASSWORD': 'dbpw'
}
}
我在 site-packages 中安装了以下 3 个 mongodb 包
- django-mongodb-engine(来自https://github.com/django-nonrel)
- django 工具箱
- pymongo
如果以下情况相关,
- 我的 models.py 尚未完全填充。
- 如果我运行
django-admin runserver --settings = myproject.settings,它会引发
ImportError: 没有名为“myproject”的模块
项目文件夹如下-
我的项目
-
我的项目
- settings.py
- wsgi.py
-
我的应用程序
manage.py
我不确定是否需要从https://github.com/django-nonrel 安装任何其他软件包(除了 mongodb-engine-master)
【问题讨论】:
-
这可能会完全解决问题,或者至少可以让您通过 ImportError ...您的 myproject/myproject 中应该有一个名为 init.py 的空文件目录。 (还有……如果你做 python3 manage.py shell 会得到什么(理论上它的活动部件比 runserver 少)
-
它有一个 init.py 文件(我在问题中省略了它)。
python3 manage.py shell运行没有任何问题。
标签: django django-mongodb-engine