2013-11-21 71 views
0

直到不​​久以前,我曾經在我的Django應用程序要做到這一點在很多地方:Django的查找路徑setting.py

from MyApp import settings 

這就要求我把我的設置MyApp的目錄中。我意識到這是錯誤的,所以我開始使用:

from django.conf import settings 

但現在我無法弄清楚如何從withing我的代碼中找到的路徑settings.py。早些時候我可以使用settings.__file__

正如我裏面settings.py定義的解決方法:

PATHTOSELF = os.path.dirname(__file__) 

任何想法如何找到路徑settings.py

+2

我不得不問,爲什麼你需要的路徑呢?你在尋找一個到_project root_的路徑嗎? –

回答

1

這應該爲你工作:

import os 
PROJECT_ROOT = os.path.abspath(os.path.dirname(__file__)) 

將其放置在頂部的settings.py內。然後,您可以像這樣在你的代碼的任何一點導入PROJECT_ROOT:

from myapp.settings import PROJECT_ROOT 
+0

你的意思是我和PATHTOSELF做同樣的事情嗎? – Oz123

+0

我已經更新了答案,使其更加清晰。我們幾乎到處都使用這個。只需使用從您的應用導入的直接設置即可。它沒有錯。 –

+0

這和PATHTOSELF有什麼區別? (旁邊的'abspath'電話)我想也許這是一個Django的方式... – Oz123

2

試試這個:

import os 
PROJECT_PATH = os.path.dirname(os.path.abspath(__file__))