django 1.9 +自定义管理界面

Ani*_*dha 6 django-templates django-admin

我正在使用Django1.9并尝试覆盖管理界面.

我引用了以下链接来覆盖管理标头

http://stackoverflow.com/questions/4938491/django-admin-change-header-django-administration-text
Run Code Online (Sandbox Code Playgroud)

如帖子中所述,我的目录/文件结构是src-> templates-> admin-> base_site.html

base_site.html

{% extends "admin/base.html" %}

{% block title %}Personal Site{% endblock %}

{% block branding %}
<h1 id="site-name"><a href="{% url 'admin:index' %}">Control Panel</a></h1>
{% endblock %}

{% block nav-global %}{% endblock %}
Run Code Online (Sandbox Code Playgroud)

但这个页面没有被调用.我从https://github.com/django/django/blob/master/django/contrib/admin/templates/admin/base_site.html复制了base_site.html代码

并改变了标题.

我知道,我可以在django中配置管理头,但这不是我要找的.我的长期目标是配置整个管理UI.所以请解释我如何让这个自定义模板页面被调用.

这是我的模板设置:

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'
            ]
        },
    },
]
Run Code Online (Sandbox Code Playgroud)

谢谢Aniruddha

Ani*_*nil 5

contrib/admin/templates/admin目录中配置项目的管理模板目录.

对于覆盖 - 在templates目录中创建customadmin目录.

  • 您还可以通过添加' django.template.loaders.filesystem.Loader'(必须在之前编写)来自定义'加载器'选项
  • ' django.template.loaders.app_directories.Loader'.

这将在默认情况下加载自定义模板.

如果要覆盖app,请在customadmin中创建目录并将其命名为app.

在上面的子目录中,为模型创建目录并将它们命名为model,以覆盖模型.

在所需目录中创建自定义扩展模板(大多数情况下为html文件).

恭喜.您已扩展默认提供的管理员.