在django admin中设置favicon

时间:2016-01-23 05:14:48

标签: django templates django-admin admin favicon

我需要为django管理界面设置一个favicon。

最好是全局执行,而不是覆盖所有应用的模板。

最干净的方法是什么?我试着为此搜索Django文档,但一无所获。

4 个答案:

答案 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 %}