有没有办法像在Sass中那样在Django模板中使用mixins?

时间:2019-07-26 11:39:37

标签: django django-templates

说我有一个包含很多重复代码的模板。很简单:

<tr>
<td>ITEM 1</td>
<td>ITEM 2</td>
</tr>

Django中是否有一种方法可以创建快捷方式或mixin,从而允许我定义结构并将变量传递给它?例如

{% mixin 'mymixin' %}
<td>$value</td>
{% end mixin %}

然后在html中使用它,例如:

<tr>
{% use_mixin 'mymixin' 'ITEM 1' %}
{% use_mixin 'mymixin' 'ITEM 2' %}
</tr>

我想在模板中完成所有这些操作,而不是弄乱我的视图,这样我就可以快速删除一些线框。

1 个答案:

答案 0 :(得分:1)

通常使用{% include ... %} template tag [Django-doc]完成此操作。例如,您可以定义一个td.html模板文件,例如:

<td>{{ value }}</td>

然后在另一个文件中,您可以使用该文件,例如:

<tr>
    {% include 'td.html' with value='ITEM 1' %}
    {% include 'td.html' with value='ITEM 2' %}
</tr>

在这里您可以在另一个文件中重用模板文件。也可以在此类模板文件中定义{% include ... %}标签,从而构造包含的“层次结构”。