2013-05-16 29 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