在过去的几周里,我正在运行 Django 1.5,开发具有多个数据库的应用程序。我为单独的数据库设置了一个路由器,并将其放置在我的项目目录中的 routers.py 下,我确保按照 django 文档的指示将路径添加到路由器:
# Extra Database Routing modules
DATABASE_ROUTERS = ['myapp.routers.MyRouter']
这奏效了。在过去的 2 周内,没有任何问题。现在,在我取出一个from djanog.conf import settings
未使用的文件后随机保存了我的 models.py 文件后,我在运行后在我的开发服务器上得到了这个python manage.py runserver
:
Validating models...
0 errors found
August 02, 2013 - 16:12:42
Django version 1.5.1, using settings 'app.settings'
Development server is running at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
ImproperlyConfigured: Error importing database router MyRouter: "cannot import name connection"
请注意,它在出错之前验证了所有模型。这对我来说没有任何意义。我去了这些地方寻求答案
尝试在from django.db import connections
我的设置文件中导入连接,导致ImproperlyConfigured: The SECRET_KEY setting must not be empty.
这仅仅是因为在导入时connections
它还会导入 django.db 中的所有内容,__init__.py
其中包括from django.conf import settings
然后覆盖我已经拥有的设置。(或者至少我相信这就是正在发生的事情)重点是正在发生一些我不完全理解的事情。
谁能解释一下为什么我的路由器突然无法导入?