我需要为django管理界面设置一个favicon。
最好是全局执行,而不是覆盖所有应用的模板。
最干净的方法是什么?我试着为此搜索Django文档,但一无所获。
答案 0 :(得分:8)
如果favicon位于/app/static/img/favicon.ico' ;,请将其链接到此文件的{%block extrahead%}:' / app / templates / admin / base_site.html'
{% extends "admin/base.html" %}
{% block title %}{{ title }} | {{ site_title|default:_('Django site admin') }}{% endblock %}
{% block extrahead %}
<link rel="icon" href="{{STATIC_URL}}img/favicon.ico" sizes="48x48" />
{% endblock %}
{% block branding %}
<h1 id="site-name"><a href="{% url 'admin:index' %}">{{ site_header|default:_('Django administration') }}</a></h1>
{% endblock %}
在settings.py INSTALLED_APPS中,请确保您的应用在django.contrib.admin之前列出。
通过删除.pyc文件来测试摆脱模板缓存:&#34; $ find。 -name \&#34; * .pyc \&#34; -delete&#34;
适用于Django 1.8.12 Firefox,Chrome。
答案 1 :(得分:2)
为避免复制原始文件的任何内容,实际上可以在扩展模板时覆盖模板(docs)。因此,创建您自己的template/admin/base_site.html
:
{% extends "admin/base_site.html" %}
{% load static %}
{% block extrahead %}
<link rel="shortcut icon" href="{% static 'yourapp/img/favicon.ico' %}" />
{% endblock %}
答案 2 :(得分:1)
在admin/base.html
模板中展开template/admin/base_site.html
并在额外块中添加favicon链接
{% extends "admin/base.html" %}
{% load staticfiles %}
...
{% block extrahead %}
<link rel="shortcut icon" href="{% static 'relative/path/to/favicon.ico' %}" />
{% endblock %}
答案 3 :(得分:1)
覆盖Django base.html模板并将其放在管理目录下,如app/admin/base.html.
将{% block extrahead %}
添加到覆盖模板。
{% extends 'admin/base.html' %}
{% load staticfiles %}
{% block javascripts %}
{{ block.super }}
<script type="text/javascript" src="{% static 'app/js/action.js' %}"></script>
{% endblock %}
{% block extrahead %}
<link rel="shortcut icon" href="{% static 'app/img/favicon.ico' %}" />
{% endblock %}
{% block stylesheets %}
{{ block.super }}
{% endblock %}