Установить favicon в django admin

Мне нужно настроить favicon для интерфейса администратора django.

Лучше всего было бы сделать это глобально, без переопределения шаблонов для всех приложений.

Каков самый чистый способ сделать это? Я попытался найти документацию по Django для этого, но ничего не нашел.

Ответ 1

Если 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: "$ find. -name \" *. pyc\ "-delete".

Работает с Django 1.8.12 Firefox, Chrome.

Ответ 2

Переопределите шаблон Django base.html и поместите его в каталог администратора, например 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 %}

Ответ 3

Расширьте 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 %}