我将在Windows 7环境下关注这tutorial条.

我的设置文件有这样的定义:

TEMPLATE_DIRS = (
    'C:/django-project/myapp/mytemplates/admin'
)

我从Django自身源代码(Django/contrib/admin/templates)的默认Django admin template目录中的模板admin/base_site.html中获得了base_template,并按照教程的指示,将其放入myapp目录的管理子目录中,但由于某些原因,它似乎没有生效.

有可能是什么问题的线索吗?

推荐答案

我知道这不在Django教程中,我为他们感到羞耻,但最好为路径变量设置相对路径.你可以这样设置:

import os.path

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

...

MEDIA_ROOT = os.path.join(PROJECT_PATH, 'media/')

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

这样,您可以移动您的Django项目,并且您的路径根将自动更新.这在设置生产服务器时很有用.

其次,您的TEMPLATE_DIRS路径有可疑之处.它应该指向模板目录的根目录.此外,它还应该以尾随的/结尾.

我将在这里猜测.../admin/目录不是您的模板根目录.如果您仍然希望编写绝对路径,则应该删除对管理模板目录的引用.

TEMPLATE_DIRS = [
    'C:/django-project/myapp/mytemplates/',
]

话虽如此,模板加载器在默认情况下应该设置为递归遍历到您的应用程序目录中,以定位模板文件.

TEMPLATE_LOADERS = [
    'django.template.loaders.filesystem.load_template_source',
    'django.template.loaders.app_directories.load_template_source',
    # 'django.template.loaders.eggs.load_template_source',
]

你不需要复制管理模板,除非你特别想覆盖一些内容.

如果您尚未运行syncdb,则必须运行它.如果您通过runserver托管Django,您还需要静态地为您的媒体文件提供服务器.

Django相关问答推荐

django命令中的no_color不起作用

在Django管理中仅显示外键的特定值

django优化查询

获取 Django Rest API 的第一个和最后一个相关对象

lower() 在 None 上被调用

关于Django中批量保存对象的问题

如何让两个模型相互引用 Django

Django ORM,按天分组

NoReverseMatch 错误

如何在 Django 测试框架中修改会话

django npm 和 node 包架构

Django UrlResolver,在运行时添加 url 进行测试

Django:如何使用动态(非模型)数据预填充 FormView?

如何将我的上下文变量传递给 Django 中的 javascript 文件?

如何在不发送信号的情况下保存模型?

Django urls 直接到 html 模板

django-rest-framework 接受 JSON 数据?

如何获取 pytz 时区的通用名称

Django:如何从模板中识别调用视图?

Django:必须使用对象 pk 或 slug 调用通用详细视图