将块传递到包含的模板中而不扩展

Div*_*yer 5 django django-templates

我想知道在整个项目中多次包含模板的最佳方法,并且可能在父模板中多次包含模板。这个包含的子模板只是一个必须填充变量和 html 块的骨架。示例模板:

父.html:

<p>Popup #1</p>
{% include "popup.html" %}
<p>Popup #2</p>
{% include "popup.html" %}
Run Code Online (Sandbox Code Playgroud)

弹出窗口.html:

<h1 class="title">{% block title %}{% endblock %}</h1>
<div class="body">{% block body %}{% endblock %}</div>
Run Code Online (Sandbox Code Playgroud)

我能想到的唯一解决方案是为每个弹出窗口创建一个单独的文件,并在每个文件中扩展 popup.html。然后,我可以将这些扩展文件包含到我的父文件中。这需要为每个令人沮丧的弹出窗口添加一个文件。实现这一目标的最佳方法是什么?

Chr*_*att 4

Django 模板引擎在这方面表现不佳。无法包含文件解析其中的块。您可以将数据传递到包含中,从而允许您执行以下操作:

<h1 class="title">{{ title }}</h1>
<div class="body">{{ body }}</div>
Run Code Online (Sandbox Code Playgroud)

但如果您需要实际的块,它们必须直接位于主模板文件或其父级之一中。