替换 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_admin/img/logo-140x60.png
替换后你需要运行命令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 的引导主题的默认徽标的主要内容,如果未能解决你的问题,请参考以下文章