替换django-admin默认徽标

时间:2017-09-13 13:24:37

标签: python django django-admin django-staticfiles

我为我的应用程序生成了一个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" %}" alt="{{ site_header|default:_('Django Admin') }}">
</a>
{% endblock branding %}

screenshot

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

3 个答案:

答案 0 :(得分:1)

您的问题已经回答here

"{% static "bootstrap_admin/img/logo-140x60.png" %}" 这来自这里

  

django的管理员的自举/ bootstrap_admin /静态/ bootstrap_admi N / IMG / logo-140x60.pn克

更换后你需要运行命令 collectstatic 然后这将有效

答案 1 :(得分:1)

实现这一目标的官方方法是:
您需要覆盖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的文件到您刚创建的templates \ admin文件夹中。在其中添加代码:

{% 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' %}" height="40px" />
</a>
 </h1>
 {% endblock %}

 {% block nav-global %}{% endblock %}

答案 2 :(得分:0)

最简单的方法是

  • 转到项目文件夹中的venv \ lib \ site_packages \ bootstrap_admin \ static \ bootstrap_admin \ img并添加自定义徽标
  • 转到venv \ lib \ site_packages \ bootstrap_admin \ templates \ admin并打开 base.html文件
  • 找到<img src="{% static "bootstrap_admin/img/logo-140x60.png" %}" width="55" alt="{{ site_header|default:_('Django administration') }}
  • 将名称“ logo-140x60.png”更改为自定义徽标的名称 您已添加并在settings.py中添加的内容 PROJECT_DIR = os.path.dirname(os.path.abspath(__file__)) STATIC_ROOT = os.path.join(PROJECT_DIR, 'static')
  • 运行python manage.py collectstatic命令
  • 刷新您的网站,然后您可以看到添加的自定义徽标