我在過去幾個星期運行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"
注意,它驗證所有的模型示數之前。這對我沒有任何意義。 我去這些地方尋求答案
- django 1.4 database router - "cannot import name connection"
- Django multi-database routing
- django database router 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
然後覆蓋我已有的設置。 (或者至少我相信那就是發生了什麼)要點就是發生了一些我不完全瞭解的事情。
任何人都可以闡明爲什麼突然我的路由器將無法導入?
經過幾個小時的核心Django文件啓動後,似乎有一個循環導入,它實際上是Django框架內的一個固定爲1.6的bug:這裏是票據 將包含我的項目目錄中的自定義路由器的routers.py移動到不同的模塊(我使用了沒有任何\ __ init__.py文件的應用程序模塊),使得所有的東西都再次正確運行。 希望這可以讓一些人頭疼。 –
wspurgin