这似乎应该很简单,但我一定做错了什么。我之前为单个应用程序扩展了管理模板,但这是我第一次尝试扩展以全面修改某些内容。
我想在整个管理员中更改帮助文本的颜色,所以我想扩展 base.html 模板的 extrastyle 块。
因此,在我的主模板文件夹中,我创建了 admin/base.html,其中包含以下代码:
{% extends 'admin/base.html' %}
{% block extrastyle %}
{# Changing the color of the help text across the entire admin #}
<style>
.help, p.help {
font-size: 10px !important;
color: #f00;
}
</style>
{% endblock %}
现在,当我尝试访问管理员时,服务器完全崩溃并出现“总线 10”错误。我相信这是因为它试图扩展自己。由于 Django 首先在我的应用程序模板文件夹中查找,因此 {% extend 'admin/base.html' %} 会首先发现自己,然后世界就爆炸了。
但是,如果我尝试将基本 html 放在其他任何地方,它就不起作用。如果我把它放在我的一个应用程序中,它只适用于那个应用程序,但如果我把它放在其他任何地方,它就会被忽略。
据我了解,扩展而不是覆盖 django 模板是最佳实践,所以我想让它工作。但是,如果我能做到的唯一方法是覆盖它,那么这就是我将采取的路线。