2012-10-23 36 views
0

我已經使用Django 1.3一段時間了,現在我的系統自動將django更新爲1.4,我正面臨着設置文件的問題。 問題1: 我已經創造了新的項目,命令django-admin.py startproject tutorial 的Django自動創建內部教程教程應用project.I不想教程應用程序,所以我刪除了,而現在,當我開始開發服務器,這裏的錯誤:Django 1.4設置文件問題?

raise ImportError("Could not import settings '%s' (Is it on sys.path?): %s" % (self.SETTINGS_MODULE, e)) 
ImportError: Could not import settings 'tutorial.settings' (Is it on sys.path?): No module named tutorial.settings 

問題2: 我曾經在一個項目的根目錄(1.3)中有一箇中心設置文件,但現在好像django甚至在我創建了另一個應用程序時甚至不會查看它。例如,在以前的問題,如果我不刪除教程應用程序,django只會查看該應用程序的設置文件,並抱怨如果我沒有在啓動開發服務器之前設置數據庫信息。如果是這樣的話,如果我有3個應用程序,我真的需要爲他們每個人填充單獨的設置文件與數據庫信息?

回答

4

Django 1.4更改了Django項目的文件系統佈局。您看到的教程「應用程序」不是應用程序,而是項目包。更多信息請見tutorial

+0

我明白了,所以我應該保留該軟件包並僅編輯設置文件嗎?根目錄中的設置文件有什麼意義,甚至沒有提到這個URL,但django-admin創建它... – Zed

+1

@Zed:根目錄中不應該有settings.py文件,只有在項目包。 – mipadi

3

Django 1.4項目結構發生了變化 - 效果更好。現在它更加模塊化。內部添加的「教程」目錄是您的項目目錄。它包含特定於您的項目的settings.py,urls.py等。應用程序現在與項目並行添加(在主目錄中,與「tutorials」項目目錄相同)。這允許他們通過您的項目和應用程序導入,如應用程序,即from some_app.models import SomeModel,而不是myproject.some_app.models import SomeModel。這個好處很明顯。您的應用不再與特定項目綁定。您可以將它原封不動地打包,將其打包以便重新分發,或者將其用於完全不同的項目,而無需進行大量更改,刪除依賴項。保持新的項目結構並學會喜歡它。