如何覆盖管理模板(例如admin / index.html),同时扩展它(请参阅https://docs.djangoproject.com/en/dev/ref/contrib/admin/#overriding-vs-replacing -an-admin-template)?
首先-我知道这个问题已经被问过并回答过(请参阅Django:覆盖和扩展应用程序模板),但是正如答案所示,如果您使用的是app_directories模板加载器(大部分是时间)。
我当前的解决方法是制作副本并从中扩展,而不是直接从管理模板扩展。这很好用,但确实令人困惑,并且在管理模板更改时增加了额外的工作。
它可能会想到一些针对模板的自定义扩展标签,但是如果已经存在解决方案,我不想重新发明轮子。
附带说明一下:有人知道Django本身是否可以解决此问题?
更新:
阅读适用于你的Django版本的文档。例如
https://docs.djangoproject.com/en/1.11/ref/contrib/admin/#admin-overriding-templates https://docs.djangoproject.com/en/2.0/ref/contrib/admin/#admin-overriding -模板
2011年的原始答案:
大约一年半前,我遇到了同样的问题,并且在djangosnippets.org上找到了一个不错的模板加载器,可以轻松实现这一目的。它允许你在特定应用程序中扩展模板,从而使你能够创建自己的admin / index.html,从而从admin应用程序扩展admin / index.html模板。像这样:
{% extends "admin:admin/index.html" %} {% block sidebar %} {{block.super}} <div> <h1>Extra links</h1> <a href="/admin/extra/">My extra link</a> </div> {% endblock %}