2013-02-19 228 views
3

我正在通過官方的Django教程。在part two的末尾,他們只需要一點點定製管理模板(改變一些標題文本)。我想我已經做好了一切,但顯然我沒有這麼做,因爲在運行syncdb並重新啓動服務器後,管理站點看起來完全一樣。我的項目(不包括部分的virtualenv)目錄如下:Django教程自定義管理模板

mysite 
├── manage.py 
├── mysite 
│   ├── __init__.py 
│   ├── __init__.pyc 
│   ├── settings.py 
│   ├── settings.pyc 
│   ├── urls.py 
│   ├── urls.pyc 
│   ├── wsgi.py 
│   └── wsgi.pyc 
├── polls 
│   ├── admin.py 
│   ├── admin.pyc 
│   ├── __init__.py 
│   ├── __init__.pyc 
│   ├── models.py 
│   ├── models.pyc 
│   ├── tests.py 
│   └── views.py 
└── templates 
    └── admin 
     └── base_site.html 

在settings.py我有這行的加入使該項目使用模板的模板/管理員:

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

後:

TEMPLATE_DIRS = (os.path.join(PROJECT_PATH, 'templates'),) 

我試過斜線和變化的幾種組合的分配值PROJECT_PATHTEMPLATE_DIRS,但沒有得到任何東西爲w掃。每次我確認它實際上正在生成一個文件路徑字符串(使用簡單的打印語句)。

想要看看發生了什麼,我編輯了原來的Django base_site.html它的admin文件夾,這改變了我的網站,所以它顯然仍在使用它。我讀過幾篇SO帖子,我不知道該做什麼。

哦,如果是相關的:Python的2.7.3和1.4.3的Django

回答

4

第一件事我會嘗試在刪除您的* pyc文件往往含有有時會導致問題的陳舊信息,喜歡這一點。

如果不是這種情況,我會仔細檢查你的PROJECT_PATH,我認爲這是問題在這裏。

dirname讓你的包含目錄。所以如果該行在settings.py中將返回/path/to/inner/mysite內部的主mysite,並且因爲內部沒有templates目錄,它不會工作。

你需要做的是這樣的。

PROJECT_PATH = os.path.realpath(os.path.dirname(os.path.dirname(__file__))) 

將返回你的外mysite路徑時與模板相結合,將返回你正確的路徑。

一切都應該工作。

+0

你對我的PROJECT_PATH變量是錯誤的完全正確。修改爲你的,它完美的作品。謝謝! – 2013-02-21 02:39:03