如何覆盖Django基本模板

use*_*469 4 django

我需要在Django应用程序中扩展页面的基础模板,但是基础中需要从此新页面中排除一些HTML元素。删除它们的最佳方法是什么?是否仅使用JQuery删除元素?

Geo*_*ins 6

您可以使用模板块来实现。例如,在base.html中,将HTML元素括在命名块中:

{% block a_unique_name %}<div>This is only relevant in base.html</div>{% endblock %}
Run Code Online (Sandbox Code Playgroud)

仅当没有其他模板覆盖该块时,才会使用该块中的HTML。您可以在子模板中覆盖它,如下所示:

{% extend base.html %}
{% block a_unique_name %}{% endblock %}
Run Code Online (Sandbox Code Playgroud)

现在,将使用子模板中的值,并将覆盖base.html中的默认值。