{% extends "Flow/base.html" %}
{% if no_tracking %}
{% block head %}
{% include "Flow/common/tracking/disabled.html" %}
{% endblock %}
{% endif %}
字符串
上面的代码片段覆盖了base.html
中的head
块,即使no_tracking
是False
。如何使这种行为有条件?
我想到了这个:
{% block head %}
{% if no_tracking %}
{% include "Flow/common/tracking/disabled.html" %}
{% else %}
<!-- How can I get "head" of base.html here? -->
{% endif %}
{% endblock %}
型
但这也会覆盖base.html
的head
。base.html
的head
不为空,它包含当no_tracking为False时必须在页面上的脚本。
我可以在base.html
中覆盖它们,但是base.html
没有no_tracking
的概念,因为它是传递给正在呈现的视图的上下文变量,而不是它扩展的变量。
我该如何解决这个问题?
1条答案
按热度按时间wxclj1h51#
您可以使用**
{{ block.super }}
[Django-doc]获取父块渲染的内容:如果你需要从父模板中获取块的内容,
{{ block.super }}
变量**就可以完成这个任务。如果要添加到父块的内容,而不是完全覆盖它,这将非常有用。使用{{ block.super }}
插入的数据将不会自动转义(...),因为它已经在父模板中转义了(如果需要的话)。所以在这里我们可以用它来给块添加一些“额外的内容”:
字符串