【问题标题】:set favicon in django admin在 django admin 中设置 favicon
【发布时间】:2016-04-29 19:58:03
【问题描述】:

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

最好在全局范围内进行,不要覆盖所有应用的模板。

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

【问题讨论】:

    标签: django templates django-admin admin favicon


    【解决方案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.pyINSTALLED_APPS 中,确保您的应用列在django.contrib.admin 之前。

    通过删除.pyc文件来测试摆脱模板缓存:

    $ find . -name \"*.pyc\" -delete".
    

    适用于 Django 1.8.12 Firefox、Chrome。

    【讨论】:

      【解决方案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 %}
      

      【讨论】:

        【解决方案3】:

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

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

        Django 版本 >= 2

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

        {% load static %}`
        

        【讨论】:

          【解决方案4】:

          覆盖 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 %}
          

          【讨论】:

          • 从 Django 2.0 及以上版本使用 {% load static %} 而不是 {% load staticfiles %}
          猜你喜欢
          • 2014-01-24
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-11-03
          • 2021-11-22
          • 1970-01-01
          相关资源
          最近更新 更多