我没有让django 1.11接受新的base_site.html:
按照文档和一些帖子我将文件复制到: BASE_DIR / templates / base_site.html和 BASE_DIR /模板/管理/ base_site.html
在settings.py中:
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [os.path.join(BASE_DIR, 'templates')],
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
'loaders': (
'django.template.loaders.filesystem.Loader',
'django.template.loaders.app_directories.Loader',
),
},
},
]
我尝试使用模板和templates / admin中的文件:
>>> print ( os.path.isfile((os.path.join(settings.BASE_DIR, 'templates', 'admin','base_site.html'))) )
True
>>> print ( os.path.isfile((os.path.join(settings.BASE_DIR, 'templates', 'base_site.html'))) )
True
答案 0 :(得分:2)
如果您想覆盖管理文件,则必须exist in admin folder inside templates folder
如下所示
your_project
your_project
|-- your_project/
|-- myapp/
|-- templates/
|-- admin/
|-- base_site.html
此处文件名base_site.html
必须与原始admin
文件夹中的文件名相同。
base_site.html
{% extends "admin/base.html" %}
# you can write changes here
答案 1 :(得分:1)
只是遇到了这个问题,并通过安装django-apptemplates并将其作为加载程序添加到settings.py中,从字面上解决了该问题:
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [PROJECT_DIR],
'APP_DIRS': False,
'OPTIONS': {
'loaders': [
# ADD LOADER HERE
'apptemplates.Loader',
'django.template.loaders.filesystem.Loader',
'django.template.loaders.app_directories.Loader',
],
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
},
},
]
**必须将APP_DIRS设置为False才能使它工作
答案 2 :(得分:0)
要覆盖Django admin的base_site.html,请添加自定义base_site.html,使其路径为BASE_DIR / templates / admin / base_site.html。这也适用于Django 1.11。