一尘不染

Python-如何覆盖和扩展基本的Django管理模板?

python

如何覆盖管理模板(例如admin / index.html),同时扩展它(请参见https://docs.djangoproject.com/en/dev/ref/contrib/admin/#overriding-vs-replacing -an-admin-template)?

首先-我知道这个问题已经被问过并回答过(请参阅Django:覆盖和扩展应用程序模板),但是正如答案所示,如果你使用的是app_directories模板加载器(大部分是时间)。

我当前的解决方法是制作副本并从中扩展,而不是直接从管理模板扩展。这很好用,但确实令人困惑,并且在管理模板更改时增加了额外的工作。

它可能会想到一些针对模板的自定义扩展标签,但是如果已经存在解决方案,我不想重新发明轮子。

附带说明一下:有人知道Django本身是否可以解决此问题?


阅读 308

收藏
2020-02-20

共1个答案

一尘不染

{% extends "admin:admin/index.html" %}

{% block sidebar %}
    {{block.super}}
    <div>
        <h1>Extra links</h1>
        <a href="/admin/extra/">My extra link</a>
    </div>
{% endblock %}
2020-02-20