Django教程自定义管理模板

时间:2013-02-19 03:58:38

标签: python django

我正在处理正式的Django教程。在part two结束时,他们可以稍微自定义管理模板(更改一些标题文本)。我认为我已经做好了一切,但显然我没有,因为在运行syncdb并重新启动服务器之后,管理站点看起来完全一样。我的项目目录(不包括virtualenv部分)如下所示:

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中,我添加了这些行以使项目使用templates / admin中的模板:

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

后:

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

我已经尝试了几种斜杠和变体组合,将值分配给PROJECT_PATHTEMPLATE_DIRS,但没有任何工作要做。每次我确认它实际上是在创建一个文件路径字符串(带有一个简单的print语句)。

为了试着看看发生了什么,我编辑了原来的Django base_site.html它的管理文件夹,这改变了我的网站,所以它显然仍在使用它。我已经阅读了几篇SO帖子,我真的不知道该怎么做了。

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

1 个答案:

答案 0 :(得分:4)

我要尝试的第一件事是删除你的* .pyc文件,它们通常包含过时的信息,这些信息有时可能导致类似的问题。

如果情况并非如此,那么我会仔细检查您认为是{问题}的PROJECT_PATH

dirname可以获取包含目录。因此,如果该行在settings.py中,它将返回/path/to/inner/mysite主要mysite中的那一行,因为内部templates中没有mysite目录,所以它不起作用。

你需要做的就是这个。

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

当与模板结合使用时,它将返回外部mysite路径,它将返回正确的路径。

一切都应该有效。