【问题标题】:Django tutorial customize admin templateDjango 教程自定义管理模板
【发布时间】:2013-02-03 16:03:13
【问题描述】:

我正在学习官方的 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 中,我添加了这些行以使项目使用模板/管理中的模板:

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

稍后:

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

在将值分配给PROJECT_PATHTEMPLATE_DIRS 时,我尝试了几种斜线和变体组合,但没有任何效果。每次我验证它实际上是在创建一个文件路径字符串(使用简单的打印语句)。

为了尝试查看发生了什么,我编辑了原始的 Django base_site.html 它的 admin 文件夹并更改了我的站点,因此它显然仍在使用它。我已经阅读了几篇 SO 帖子,我真的不知道该怎么办了。

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

【问题讨论】:

    标签: python django


    【解决方案1】:

    我要尝试的第一件事是删除您的 *.pyc 文件,它们通常包含陈旧信息,有时会导致此类问题。

    如果不是这种情况,我会仔细检查您的PROJECT_PATH,我认为这是这里的问题。

    dirname 为您获取包含目录。因此,如果该行位于 settings.py 中,它将返回主 mysite 内的 /path/to/inner/mysite ,并且由于您的内部 mysite 中没有 templates 目录,因此它将无法正常工作。

    你需要做的是这个。

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

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

    然后一切都应该工作。

    【讨论】:

    • 关于我的 PROJECT_PATH 变量错误,您完全正确。将其修改为您的,并且效果很好。谢谢!
    猜你喜欢
    • 2018-09-07
    • 2016-03-01
    • 1970-01-01
    • 2014-05-04
    • 2013-12-04
    • 1970-01-01
    • 1970-01-01
    • 2012-08-01
    相关资源
    最近更新 更多