无法覆盖 django/grappelli base.html 模板

Trouble overriding django/grappelli base.html template

根据 Django 教程,我在 BASE_DIR 下创建了一个模板目录,并添加了一个 admin 和一个 Grappelli 子文件夹,稍后从这两个文件夹中复制 base.html 并将每个文件夹放入各自的目录中。然后我做了一些更改,添加了一些 CSS 和 JS...重新加载测试服务器,但我的管理界面没有反映任何更改,甚至我添加的 CSS/JS 也不存在!

我在 settings.py 中的模板:

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [os.path.join(BASE_DIR, 'templates')],
        'APP_DIRS': True,
        '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',
                'django.core.context_processors.request',
            ],
        },
    },
]

我一定是做错了什么,但我不知道是什么,文档也没有帮助。

答案:问题是 'DIRS':[] 仅适用于 Django 1.8+,对于 Django 1.7- 我们需要使用以下内容:

TEMPLATE_DIRS = (
    os.path.join(BASE_DIR, 'templates'),
)
my settings.py

import os
BASE_DIR = os.path.dirname(os.path.dirname(__file__))
PROJECT_DIR = os.path.dirname(os.path.dirname(__file__) + '/../')

TEMPLATE_CONTEXT_PROCESSORS = (
    'django.contrib.auth.context_processors.auth',
    'django.core.context_processors.request',
    'apps.projects.context_processors.status',
)

SITE_ID = 1

ROOT_URLCONF = 'apps.urls'

WSGI_APPLICATION = 'apps.wsgi.application'

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
    }
}

STATIC_URL = '/static/'
STATIC_ROOT = PROJECT_DIR +  '/static/'
MEDIA_URL =  '/media/'
MEDIA_ROOT = PROJECT_DIR + '/media/'

TEMPLATE_DIRS = (
    PROJECT_DIR + '/templates/',
)