我为我的应用程序生成了一个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 %}
我想更改左上角的徽标。我怎样才能实现我的目标?
答案 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)
最简单的方法是
<img src="{% static "bootstrap_admin/img/logo-140x60.png" %}" width="55" alt="{{ site_header|default:_('Django administration') }}
PROJECT_DIR = os.path.dirname(os.path.abspath(__file__))
STATIC_ROOT = os.path.join(PROJECT_DIR, 'static')
python manage.py collectstatic
命令