在django admin中设置favicon

kur*_*tgn 11 django favicon templates admin django-admin

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

最好是在全球范围内完成,而不是覆盖所有应用程序的模板.

最干净的方法是什么?我尝试搜索Django文档,但没有找到任何结果.

use*_*918 10

如果favicon位于'/app/static/img/favicon.ico',请将其链接到此文件的{%block extrahead%}:'/ app/template/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 %}
Run Code Online (Sandbox Code Playgroud)

在settings.py INSTALLED_APPS中,请确保您的应用在django.contrib.admin之前列出.

通过删除.pyc文件来测试摆脱模板缓存:"$ find.-name \"*.pyc \" - delete".

适用于Django 1.8.12 Firefox,Chrome.


th3*_*m0r 9

为了避免复制原始文件的任何内容,您实际上可以在扩展模板时覆盖它(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 %}
Run Code Online (Sandbox Code Playgroud)


小智 6

admin/base.html在您的template/admin/base_site.html模板中扩展并在extrahead块中添加网站图标链接

{% extends "admin/base.html" %}
{% load staticfiles %}
...
{% block extrahead %}
    <link rel="shortcut icon" href="{% static 'relative/path/to/favicon.ico' %}" />
{% endblock %}
Run Code Online (Sandbox Code Playgroud)

Django 版本 >= 2

请注意,如果使用 Django 2 或更高版本,正确的导入是:

{% load static %}`
Run Code Online (Sandbox Code Playgroud)


小智 5

覆盖 Django base.html 模板并将其放在 admin 目录下,例如my_app/templates/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 %}
Run Code Online (Sandbox Code Playgroud)