替换 django-admin 的引导主题的默认徽标

Posted

技术标签:

【中文标题】替换 django-admin 的引导主题的默认徽标【英文标题】:Replacing django-admin's bootstrap theme's default logo 【发布时间】:2018-02-22 05:46:30 【问题描述】:

我为我的应用程序生成了一个 django-admin,我可以访问仪表板。但它包含一个标有“django admin”的徽标。我想将其更改为我自己的自定义徽标。我怎样才能做到这一点?

我尝试将 base.html 文件添加到管理目录并尝试覆盖,但由于某种原因它不起作用。其代码如下:

% extends "admin/base.html" %
% load theming_tags %
% load staticfiles %
% block blockbots %
     block.super 
    # Using blockbots ensures theming css comes after any form media and other css #
    % render_theming_css %
    <style type="text/css">
    #header #branding h1 
        background-image: url("bootstrap_admin/img/logo-140x60.png");
    
    </style>
% endblock %

% block branding %
<a href="% url 'admin:index' %" class="django-admin-logo">
    <!-- Django Administration -->
    <img src="% static "bootstrap_admin/img/logo-140x60.png" %" >
</a>
% endblock branding %

我想更改左上角的徽标。我怎样才能实现我的目标?

【问题讨论】:

【参考方案1】:

您的问题已回答here

"% static "bootstrap_admin/img/logo-140x60.png" %" 这是从这里来的

django-admin-bootstrap/bootstrap_admin/static/bootstrap_admi‌​n/img/logo-140x60.pn‌​g

替换后你需要运行命令python manage.py collectstatic然后这将工作

【讨论】:

我已经看过那个帖子了。它适用于标题,但我不确定如何将其更改为适用于徽标。有什么建议吗? 如果是这样,那么您始终可以使用 django-admin 的第三方包。他们还提供了许多很酷的功能来使用 我搜索了很多,但一无所获。你能给我指点什么吗? 你用过 django-admin-tool 吗? 如果这个答案对你有帮助,那么你可以随时接受答案或投票。【参考方案2】:

实现这一点的官方方法是: 您需要覆盖 Django 提供的默认模板。在您的 Django 设置中,您的 code:: TEMPLATES 设置如下所示。

TEMPLATES = [

    'BACKEND': 'django.template.backends.django.DjangoTemplates',
    'DIRS': [],
    '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 将在每个应用程序内名为 templates 的目录中查找模板,但您可以通过设置 TEMPLATES.DIRS. 的值来覆盖它

我们将'DIRS': [], 更改为'DIRS': [os.path.join(BASE_DIR, 'templates/')], 并创建模板文件夹。如果您的STATICFILES_DIRS 为空,请将其设置为:

STATICFILES_DIRS = [
os.path.join(BASE_DIR, "static"),
]

现在从管理应用程序创建一个名为base_site.html 的文件到您刚刚创建的模板\管理文件夹。在里面添加代码:

% extends "admin/base.html" %

% load staticfiles %

% block title % title  |  site_title|default:_('Django site admin') % 
endblock %

% block branding %
<h1 id="site-name">
<a href="% url 'admin:index' %">
    <img src="% static 'Your image.png' %"  />
</a>
 </h1>
 % endblock %

 % block nav-global %% endblock %

【讨论】:

以上是关于替换 django-admin 的引导主题的默认徽标的主要内容,如果未能解决你的问题,请参考以下文章

黑苹果 OC 0.7.0 引导主题设置教程

黑苹果OC引导 简洁大方的纯黑主题

黑苹果OC引导 多彩绚丽霓虹 主题及安装教程

黑苹果 OC引导 big sur 主题分享

在 ASP.NET MVC 显示问题中更改引导主题

从 Django-admin 中删除默认应用程序