2013-08-02 26 views
2

我在過去幾個星期運行Django 1.5開發一個具有多個數據庫的應用程序。我成立了一個路由器一個單獨的數據庫的把它放在下routers.py在我的項目目錄設置我就確定路徑添加到路由器的Django文檔規定的方式:Django 1.5:'導入數據庫路由器'錯誤,以前導入正確

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

和起作用的。在過去的兩週內沒有問題。現在,經過隨機我救了我的models.py文件取出,這不是正在使用from djanog.conf import settings後,我跑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內的所有內容,其中包括es from django.conf import settings然後覆蓋我已有的設置。 (或者至少我相信那就是發生了什麼)要點就是發生了一些我不完全瞭解的事情。

任何人都可以闡明爲什麼突然我的路由器將無法導入?

+1

經過幾個小時的核心Django文件啓動後,似乎有一個循環導入,它實際上是Django框架內的一個固定爲1.6的bug:這裏是票據 將包含我的項目目錄中的自定義路由器的routers.py移動到不同的模塊(我使用了沒有任何\ __ init__.py文件的應用程序模塊),使得所有的東西都再次正確運行。 希望這可以讓一些人頭疼。 – wspurgin

回答

1

經過幾個小時的核心Django文件啓動後,似乎有一個循環導入,它實際上是Django框架內固定爲1.6的錯誤:這裏是票< code.djangoproject.com/ticket/20704>;;將我的包含我的項目目錄中的自定義路由器的routers.py移動到另一個模塊(我使用的應用程序模塊沒有任何初始文件,.py文​​件),使所有的東西都再次正確運行。希望這可以節省一些頭痛的問題。

+0

謝謝!我的路由器被放置在模型模塊中。我將它們移到同一個應用程序中的個人模塊。解決了! – falko