2013-05-16 185 views
0

我正在瀏覽Django教程 - https://docs.djangoproject.com/en/1.3/intro/tutorial02/ 最後,他們要求我們通過以下步驟將默認網頁模板的名稱從「Django Administration」更改爲其他任何內容。 1)將base_site.html從django的默認文件夾複製到TEMPLATE_DIRS中指定的admin目錄。 目前我TEMPLATE_DIRS的樣子 -無法更改默認的Django模板

TEMPLATE_DIRS = (
# Put strings here, like "/home/html/django_templates" or "C:/www/django/templates". 
# Always use forward slashes, even on Windows. 
# Don't forget to use absolute paths, not relative paths. 
"/home/mysite/polls/mytemplates" 
) 

我也複製了管理模板目錄爲/ home/mysite的/調查/ mytemplates

所以結構是這樣的 /家/ mysite的/調查/ mytemplates/admin 其中admin文件夾包含base.html和base_site.html

我已經在base_site.html文件中編輯過標題,但仍然在運行django時顯示默認模板標題。

有人能告訴我我錯過了什麼嗎?

+1

你可以檢查'TEMPLATE_LOADERS'設置中是否有'django.template.loaders.filesystem.Loader'首先出現。 – tuxcanfly

+0

@tuxcanfly是的。它確實如此。檢查下面TEMPLATE_LOADERS =( 'django.template.loaders.filesystem.Loader', 'django.template.loaders.app_directories.Loader', # 'django.template.loaders.eggs.Loader', ) – Neil

+0

你是缺少逗號:'「/ home/mysite/polls/mytemplates」,' –

回答

1

您的模板目錄不應該包含您的應用程序名稱。 Django將自動添加任何名爲templates的目錄,該目錄是INSTALLED_APPS中列出的任何應用程序的一部分。這就是您的自定義管理模板無法使用的原因。

你應該做的第一件事就是重新命名/home/mysite/polls/mytemplatestemplates

mv /home/mysite/polls/mytemplates /home/mysite/polls/templates 

接下來,你應該有:

TEMPLATE_DIRS = ('/home/mysite/templates',) 

然後,你的管理模板應該是/home/mysite/templates/admin/

由於對於逗號:括號中的單個字符串只是一個字符串,但用逗號變成一個元組。 TEMPLATE_DIRS設置是一個元組,因此您需要額外的逗號:

>>> a = ('hello') 
>>> type(a) 
<type 'str'> 
>>> a = ('hello',) 
>>> type(a) 
<type 'tuple'> 
+1

我把它改名爲模板 TEMPLATE_DIRS =( '/家庭/ mysite的/模板', ) 管理文件夾位於在/ home/mysite的/模板/。 仍然不工作:( – Neil

1

我想通了。問題出在我的網站名稱中有單引號。所以不得不把整個網站名稱用雙引號括起來,而不是一個

+0

這解決了我的問題,但有誰知道原因? – Yeke