Django admin / site_base.html覆盖我的admin / site_base.html

时间:2017-05-15 16:54:08

标签: python html django

我的admin / base_site.html没有被django的admin / base_site.html加载或覆盖。请让我知道我错过了什么(我最近开始)

我的模板位于

  

BASE_DIR /模板/管理/ base_site.html

在设置中

TEMPLATES = [
    {
        "BACKEND": "django.template.backends.django.DjangoTemplates",
        "DIRS": [
            os.path.join(BASE_DIR, "templates"),
        ],
        "APP_DIRS": True,
        "OPTIONS": {
            'debug': True,
            "context_processors": [
                "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.template.context_processors.request",
                "django.contrib.messages.context_processors.messages",
                "account.context_processors.account",
                "pinax_theme_bootstrap.context_processors.theme",
            ],
        },
    },
]

编辑:我在我的问题中犯了一个错误,我的模板实际上是在

  

PROJECT_ROOT /模板/管理/ base_site.html

其中 PROJECT_ROOT 是manage.py的目录。

2 个答案:

答案 0 :(得分:0)

确保您的应用程序在您的django django.contrib.admin的{​​{3}} settings.py INSTALLED_APPS之前宣布

实际上,Django的模板加载器将遍历distinct-values(/Fruit/( Node1/Childnode1[matches(@skincolor,'yellow','i')], Node2[matches(@color,'yellow','i')] )/Fruit/@name) 中的应用,并抓取INSTALLED_APPS中描述的第一个匹配模板。

  

INSTALLED_APPS的顺序非常重要!例如,如果你想要   要自定义Django管理员,您可以选择覆盖   标准admin / base_site.html模板,来自django.contrib.admin,   在myproject.polls中使用您自己的admin / base_site.html。 那你必须   确保你的myproject.polls出现在django.contrib.admin之前   在INSTALLED_APPS 中,否则将加载django.contrib.admin   首先,你的将被忽略。

答案 1 :(得分:0)

解决方案是将DIRS改为

"DIRS": [
        os.path.join(BASE_DIR, "templates"),
        os.path.join(PROJECT_ROOT, "templates"),
    ],

问题出在设置中。

"DIRS": [
        os.path.join(BASE_DIR, "templates"),
    ],

此处 BASE_DIR 是主应用的目录,因此 DIRS 包括 mysite / mysite / templates

我的问题出了问题。我认为BASE_DIR是我项目的目录,因此我的模板位于

  

BASE_DIR /模板/管理/ base_site.html

但实际上是在

  

PROJECT_ROOT / templates / admin(其中manage.py是)