【问题标题】:Trouble overriding django/grappelli base.html template无法覆盖 django/grappelli base.html 模板
【发布时间】:2015-10-01 05:19:05
【问题描述】:

根据 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'),
)

【问题讨论】:

    标签: python django django-grappelli


    【解决方案1】:
    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/',
    )
    

    【讨论】:

    • ALLOWED_HOSTS = [] 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/', )
    猜你喜欢
    • 2012-12-14
    • 2014-05-12
    • 2014-08-30
    • 2017-01-10
    • 2020-02-18
    • 2014-12-22
    • 1970-01-01
    • 1970-01-01
    • 2016-05-16
    相关资源
    最近更新 更多