我在以下几个模板上重复了以下代码:
{% for element in elements %}
<div class="some-class">
<div class="another-class">
<div class="row">
<div class="col-xs-3">
<img class="img-responsive" alt="{{ entry.user }} avatar" style="border-radius: 50%; width: 100%;" src="{{ entry.avatar_url}}">
</div>
<div class="col-xs-9" style="some-style">
{% if entry.data1 %}<small>{% trans entry.data1 %}</small><br>{% endif %}
{% trans entry.data2 %} {% trans entry.data2 %}
<br>
<small style="some-style">
{% blocktrans with timestamp=entry.timestamp|naturaltime %}
{{ timestamp }}
{% endblocktrans %}
</small>
</div>
</div>
</div>
</div>
{% endfor %}
我想知道避免重复这段代码的最佳方法是什么,我是Django的新手,我非常感谢你的帮助。
修改 如果我需要将内容传递给该模板,该怎么办?它是否会使用与包含文件中的上下文相同的上下文,还是应该以某种方式指示上下文?
答案 0 :(得分:2)
这很简单:
将这段HTML放在一个名为reusable.html
的文件中,然后将include
放在其他模板中。
像这样:
<!-- Other HTML -->
... html stuff here
{% include 'reusable.html' %}
现在,如果你想将参数传递给reusable.html
,你可以这样做:
`{% include 'reusable.hmtl' with var_a='abc' var_b=123 %}`
答案 1 :(得分:1)
在其自己的模板中进行设置,例如new_template.html
,并在任意位置使用{% include 'new_template.html' %}