Django未覆盖基础管理员模板

0 投票
2 回答
29 浏览
提问于 2025-04-12 16:58

我正在尝试为我的Django管理面板添加一些小的自定义功能,比如一个小图标(favicon)。

我按照官方指南的步骤,在app/templates/admin/目录下创建了一个base_site.html文件。

base_site.html

{% extends "admin/base_site.html" %}
{% load static %}

{% block branding %}
    <img src="{% static 'portal/img/favicon.png' %}" alt="Favicon">
    {{ block.super }}
{% endblock %}

看起来这个模板根本没有被替换,因为我没有看到找不到favicon或src错误的信息(在其他页面上是正常工作的)。

urls.py

from django.contrib import admin
from django.urls import path, include
from django.contrib.staticfiles.urls import staticfiles_urlpatterns


sitemaps = {
    'static': StaticViewSitemap,

}
 
urlpatterns = [
    path('admin/', admin.site.urls, name="admin"),
]

urlpatterns += staticfiles_urlpatterns()

2 个回答

0

确认一下你的 base_site.html 文件是否正确地继承了基础模板:

{% extends "admin/base.html" %}
{% load static %}
{% block extrahead %}
<link rel="icon" type="image/png" href="{% static 'portal/img/favicon.png' %}" />
{% endblock branding %}

如果这没有帮助,可以看看这个链接: 在 Django 管理后台设置图标

0

要想修改一个管理员模板,存放这些模板的应用(看起来是app)需要在INSTALLED_APPS中排在django.contrib.admin之前。这里是这样吗?

撰写回答