Написать многоразовую шаблонную часть django
В моих шаблонах во многих местах есть повторяющиеся части, например:
<th class="column-title">
<a href="?{% query_transform order_by='x' %}">
{{ objForm.x.label_tag }}</a>
</th>
<th class="column-title">
<a href="?{% query_transform order_by='y' %}">
{{ objForm.y.label_tag }}</a>
</th>
<th class="column-title">
<a href="?{% query_transform order_by='z' %}">
{{ objForm.z.label_tag }}</a>
</th>
Есть ли способ написать некоторую "функцию" для рендеринга такой html части, как: (псевдокод)
в html:
render("x")
render("y")
render("z")
в python:
def render(param):
return " <th class="column-title">
<a href="?{% query_transform order_by='+param+' %}">
{{ objForm'+param+'.label_tag }}</a>
</th>"
PS. Я знаю, что теоретически я могу подготовить упорядоченный список в представлении, а затем выполнять итерации над ним в шаблоне, но я думаю, что это не очень хорошее решение, так как я предпочитаю строить свое представление, порядок полей и т.д. на стороне шаблона.
Вы можете использовать тег шаблона include, чтобы вставить ваш общий код шаблона туда, куда вам нужно.
<table>
<thead>
<tr>
{% include "table_header.html" with param=x %}
{% include "table_header.html" with param=y %}
{% include "table_header.html" with param=z %}
<tr>
</thead>
</table>