2016-01-13 153 views
6

我正在使用Django1.9 &试图覆盖管理界面。django 1.9 +自定义管理界面

我提到下面的链接重写管理报头

http://stackoverflow.com/questions/4938491/django-admin-change-header-django-administration-text 

如后所述,我的目录/文件结构是 SRC->模板 - >管理 - > 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 %} 

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

&对标题进行了更改。

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

这里是我的模板设置:

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' 
      ] 
     }, 
    }, 
] 

感谢 Aniruddha

+0

你应该遵循1.9版本指导原则,上面是1.7以上的版本。请参阅https://docs.djangoproject.com/es/1.9/ref/contrib/admin/#overriding-admin-templates – Anil

回答

5

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

For override - 在templates目录中创建customadmin目录。

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

这会在默认情况下加载自定义模板。

在customadmin中创建目录,并将这些目录命名为app,如果您想覆盖app。

在上述子目录中,为模型创建目录并将其命名为模型,以覆盖模型。

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

恭喜。你已经扩展了默认提供的管理员。

+0

如何配置项目的管理模板目录? –