加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

如何正确扩展django admin / base.html模板?

发布时间:2020-12-16 23:22:16 所属栏目:Python 来源:网络整理
导读:这似乎应该是简单的,但我一定要做错事.我之前已经扩展了个人应用的管理模板,但这是我第一次尝试扩展以全面修改某些内容. 我想在整个管理员中更改帮助文本的颜色,所以我想扩展base.html模板的extrastyle块. 所以在我的主要模板文件夹中,我用这个代码创建了adm
这似乎应该是简单的,但我一定要做错事.我之前已经扩展了个人应用的管理模板,但这是我第一次尝试扩展以全面修改某些内容.

我想在整个管理员中更改帮助文本的颜色,所以我想扩展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首先在我的应用程序模板文件夹中,{%extends’admin / base.html’%}首先发现自己并且世界爆炸.

但是,如果我尝试将基地HTML放在其他地方,它不起作用.如果我把它放在我的一个应用程序中,它只适用于那个应用程序,但是如果我把它放在任何地方,它就被忽略了.

从我的理解,这是一个最佳实践,而不是覆盖django模板,所以我想让这个工作.但是,如果我能做的唯一方法是重写它,那就是我要采取的路线.

解决方法

的确,你的问题是一个无限递归循环,因为base.html扩展了它.

要实现你想要的,你应该覆盖admin / base_site.html(反过来扩展base.html).这样,您只能替换您感兴趣的区块.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读