我在settings.py
文件中設置了gi
。我創建了一個單獨的Python文件(即我沒有在視圖中使用它),並用import語句爲:無法從django中的設置文件中獲取設置
from django.conf import settings
,但是當我試圖訪問settings.gi
,它說,'Settings' object has no attribute 'gi'
。少了什麼東西? :■
我在settings.py
文件中設置了gi
。我創建了一個單獨的Python文件(即我沒有在視圖中使用它),並用import語句爲:無法從django中的設置文件中獲取設置
from django.conf import settings
,但是當我試圖訪問settings.gi
,它說,'Settings' object has no attribute 'gi'
。少了什麼東西? :■
但這只是一個約定?我正在使用一些現有的代碼,所以我不會重命名設置,因爲它也將用於其他應用程序 – wasimbhalli 2012-07-24 13:02:53
我使用此代碼查看屬性,值的變量(theObject).iteritems(): 打印屬性,「:」,value'它只顯示一個屬性被包裝 – wasimbhalli 2012-07-24 13:03:41
如果你看[源代碼](https://github.com/django/django/blob/1.4/django/conf/__init__.py# L82)作爲設置對象,您可以看到非大寫變量將被忽略。文檔中的'convention'這個詞可能不夠強大。如果你不想重命名這個變量,那麼這取決於你,但是Django不會將它視爲一個「設置」,你需要找到一種不同的方式來導入它。 – Alasdair 2012-07-24 13:11:08
該項目必須添加在PYTHONPATH上並且必須定義DJANGO_SETTINGS_MODULE。 請參考下面提到的命令。
export PYTHONPATH=PATH_OF_PROJECT
export DJANGO_SETTINGS_MODULE=settings
我所有的其他設置都正常工作。例如,數據庫連接正在工作,syncdb工作。唯一的問題是一個文件使用設置文件中的設置。 – wasimbhalli 2012-07-24 13:08:21
您可以發佈您無法訪問項目設置文件的文件的其他導入語句。可能是他們是導入或模塊名稱中的碰撞?試試Alasdir提到的上限。 – 2012-07-24 13:18:33
我不知道這是否重要,但錯誤說** **,而您正在嘗試訪問** s ettings。難道你不小心使用了資本嗎? – BrtH 2012-07-24 13:11:51
@BrtH不,您可以查看django.conf的源代碼,您會看到'settings'是項目'settings'模塊的一個包裝。 – xiaowl 2012-07-24 13:42:31