Как избежать дублирования строк в моих шаблонах Django? - PullRequest
0 голосов
/ 09 апреля 2011

Мне интересно, как продублировать несколько строк в моих шаблонах. В частности, я хочу создать оглавление в виде навигации вверху моих страниц с якорными ссылками на контент ниже (например, http://www.google.com/transparencyreport/faq/).. Я хочу, чтобы ссылки имели тот же текст, что и заголовки разделов дальше. вниз.

Я думал об использовании {% with%}, но кажется неудобным вкладывать все в мой блок {% with%}.

Аналогично Какой лучший способ дублировать данные в шаблоне django? , но я нигде не наследую этот шаблон, поэтому использование {% block%} на самом деле не вариант.

Ответы [ 2 ]

2 голосов
/ 09 апреля 2011

Это похоже на ситуацию с использованием только той переменной шаблона, которую вы передали из представления (например, {{ link_name }}).

Вы также можете использовать тег включения шаблона , который включает другой шаблон с вашей дублирующейся информацией.

0 голосов
/ 10 апреля 2011

По вашему мнению, вы можете разбить ваш контент так, чтобы заголовки были индивидуально доступны как переменные шаблона.Вы можете хранить информацию, связанную с каждым заголовком, в виде списка диктов:

page_content = [
    { 
         'id':'header1',
         'header': 'Text for Header 1'
         'content' : 'Content Beneath header 1' 
    },
]

Затем в ваших шаблонах вы можете сгенерировать свою таблицу для содержимого с чем-то вроде этого:

{% for d in page_content  %}
    <a href="#{{ d.id }}">{{ d.header }}</a>
{% endfor %}

Хотя содержимое вашей страницы будет выглядеть примерно так:

{% for d in page_content  %}
    <h1 id="#{{ d.id }}">{{ d.header }}</h1><p>{{ d.content }}</p>
{% endfor %}
...