【问题标题】:unable to change default django template无法更改默认 django 模板
【发布时间】:2013-05-11 02:00:36
【问题描述】:

我正在阅读 Django 的教程 - https://docs.djangoproject.com/en/1.3/intro/tutorial02/ 最后,他们要求我们按照以下步骤将默认网页模板的名称从“Django Administration”更改为其他任何名称。 1) 将 django 默认文件夹中的 base_site.html 复制到 TEMPLATE_DIRS 中指定的管理目录。 目前我的 TEMPLATE_DIRS 看起来像 -

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/polls/mytemplates

所以结构是这样的 /home/mysite/polls/mytemplates/admin 其中 admin 文件夹包含 base.html 和 base_site.html

我已经在 base_site.html 文件中编辑了标题,但是当我运行 django 时它仍然显示默认模板标题。

谁能告诉我我错过了什么?

【问题讨论】:

  • 您能否检查django.template.loaders.filesystem.Loader 是否在TEMPLATE_LOADERS 设置中排在首位。
  • @tuxcanfly 是的。确实如此。检查下面的 TEMPLATE_LOADERS = ( 'django.template.loaders.filesystem.Loader', 'django.template.loaders.app_directories.Loader', # 'django.template.loaders.eggs.Loader', )
  • 你少了一个逗号:"/home/mysite/polls/mytemplates",
  • @BurhanKhalid - 添加了逗号。还是不行

标签: django django-templates


【解决方案1】:

您的模板目录中不应包含您的应用程序名称。 Django 将自动添加任何名为templates 的目录,它是INSTALLED_APPS 中列出的任何应用程序的一部分。这就是您的自定义管理模板不起作用的原因。

您应该做的第一件事是将/home/mysite/polls/mytemplates 重命名为templates

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'>

【讨论】:

  • 我将其重命名为模板 TEMPLATE_DIRS = ( '/home/mysite/templates', ) Admin 文件夹位于 /home/mysite/templates/。仍然无法正常工作:(
【解决方案2】:

我想通了。问题在于我的网站名称中的单引号。所以必须将整个网站名称用双引号括起来,而不是一个

【讨论】:

    猜你喜欢
    • 2022-10-23
    • 2013-03-15
    • 2019-05-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-05
    • 2015-05-01
    相关资源
    最近更新 更多