django 1.9 + 自定义管理界面

Posted

技术标签:

【中文标题】django 1.9 + 自定义管理界面【英文标题】:django 1.9 + customizing admin interface 【发布时间】:2016-04-17 20:39:17 【问题描述】:

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

我参考了以下链接来覆盖管理员标题

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

如帖子中所述,我的目录/文件结构是 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 %

但是这个页面没有被调用。我复制了 base_site.html 代码 https://github.com/django/django/blob/master/django/contrib/admin/templates/admin/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'
            ]
        ,
    ,
]

谢谢 阿尼鲁达

【问题讨论】:

您应该遵循 1.9 版本指南,以上适用于 1.7 之前的版本。参考docs.djangoproject.com/es/1.9/ref/contrib/admin/… 【参考方案1】:contrib/admin/templates/admin 目录

配置项目的管理模板目录

用于覆盖 - 在模板目录中创建一个 customadmin 目录。

您还可以自定义“loaders”选项,添加“django.template.loaders.filesystem.Loader”(必须写在前面) 'django.template.loaders.app_directories.Loader'.

这将在默认之前加载自定义模板。

如果您想覆盖应用程序,请在 customadmin 中创建目录并将其命名为应用程序。

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

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

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

【讨论】:

如何配置项目的admin模板目录??

以上是关于django 1.9 + 自定义管理界面的主要内容,如果未能解决你的问题,请参考以下文章

Django 1.9:为 QuerySet 创建复杂的自定义过滤器方法

自定义模块仅允许Magento 1.9中的完全管理员权限

在管理界面上向 Django 内联对象添加自定义操作

Python之路,Day16 - Django 进阶

Django 管理员自定义验证 - 至少需要一个内联外键模型

在自定义命令中与 Django 通道进行数据绑定