Написать многоразовую шаблонную часть 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>
Вернуться на верх