【发布时间】:2015-10-06 12:03:06
【问题描述】:
我们正在尝试覆盖 Django 1.6 的管理页面,但它继续从 django/contrib/templates/... 获取它:
settings.py:
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [
[os.path.join(BASE_DIR, 'templates')],
],
'OPTIONS': {
'context_processors': [
# Insert your TEMPLATE_CONTEXT_PROCESSORS here or use this
# list if you haven't customized them:
'django.contrib.auth.context_processors.auth',
'django.template.context_processors.debug',
'django.template.context_processors.i18n',
'django.template.context_processors.media',
'django.template.context_processors.static',
'django.template.context_processors.tz',
'django.contrib.messages.context_processors.messages',
],
'loaders': [
# insert your TEMPLATE_LOADERS here
'django.template.loaders.filesystem.Loader',
'django.template.loaders.app_directories.Loader',
]
},
},
]
]
以及文件结构:
project
project
templates
app_name
admin
file_to_override <--it varies here from being inside the app_name or inside template itself
我不确定为什么目录不起作用
【问题讨论】:
-
尝试将您的自定义注册模板放入
registration文件夹中。它应该在您当前的templates文件夹中。 (您可以尝试在模板中将admin文件夹重命名为registration)。 -
管理页面使用 loader.py 工作,它要求 admin/index.html;我正在为该路径获取 TemplateDoesNotExist,因为我试图远离给定的模板;测试我是否从该文件夹中取出 django/contrib/templates 以查看它是否会拾取我放置在那里的那些。
-
尝试将
app_directories放在文件系统加载器上方的TEMPLATE_LOADERS中,以便首先加载它 -
这似乎没有任何改变
标签: django django-templates django-admin