我需要在我的Django应用程序中扩展页面的基本模板,但是我需要从基础中的这个新页面中排除一些HTML元素。删除它们的最佳方法是什么?我只是用JQuery删除元素吗?
答案 0 :(得分:5)
您可以使用模板块来实现此目的。例如,在base.html中,将命名块中的HTML元素包围起来:
{% block a_unique_name %}<div>This is only relevant in base.html</div>{% endblock %}
只有在没有其他模板覆盖它时,才会使用块中的HTML。您可以在子模板中覆盖它,如下所示:
{% extend base.html %}
{% block a_unique_name %}{% endblock %}
现在将使用子模板中的值,并将覆盖base.html的默认值。
答案 1 :(得分:0)
创建没有这些元素的基本模板。使用这些元素创建子模板。继承此子模板和此特定页面的所有页面 - 来自基本模板。
另一种方法是将这些元素放入基本模板中的块中。
{# base template #}
{% block override_me %}
<elem1 /><elem2 />
{% endblock %}
{# child template #}
{% block override_me %}{% endblock %}