Django 1.5:'导入数据库路由器错误'以前正确导入

时间:2013-08-02 18:46:28

标签: django django-settings

我在过去几周内运行Django 1.5开发具有多个数据库的应用程序。我为一个单独的数据库设置了一个路由器,将它放在我的项目目录中的routers.py下的设置中我确保按照django文档规定的方式添加到路由器的路径:

# Extra Database Routing modules
DATABASE_ROUTERS = ['myapp.routers.MyRouter']

这很有效。在过去的两周里,没有任何问题。现在,在我拿出未使用的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 {{1}内的所有内容其中包括__init__.py,然后覆盖我已经拥有的设置。 (或者至少我相信这是正在发生的事情)重点在于发生了一些我不完全理解的事情。

任何人都可以解释为什么突然我的路由器无法导入?

1 个答案:

答案 0 :(得分:1)

在核心django文件上电几个小时之后,似乎有一个循环导入,这实际上是一个针对1.6修复的Django框架内的错误:这里的票证< code.djangoproject.com/ticket/20704取代;将包含我的项目目录中的自定义路由器的routers.py移动到另一个模块(我使用的app模块没有任何 init .py文件)使所有内容再次正常运行。希望这可以节省一些令人头疼的问题。