如何避免在Django模板中复制字符串?

时间:2011-04-09 08:30:48

标签: python django django-templates

我想知道如何在模板中复制几个字符串。具体来说,我希望在我的页面顶部创建一个目录导航类型,其中包含指向更远内容的锚点链接(如http://www.google.com/transparencyreport/faq/)。我希望链接的文本与更远的部分标题相同。

我考虑过使用{%with%},但是我必须将所有内容嵌套在{%with%}块中。

Whats the best way to duplicate data in a django template?类似,但我不会在任何地方继承此模板,因此使用{%block%}并非真正的选项。

2 个答案:

答案 0 :(得分:2)

这似乎只是使用您从视图传递的模板变量(例如{{ link_name }})。

您也可以使用template inclusion tag包含另一个包含重复信息的模板。

答案 1 :(得分:0)

在您看来,您可能会破坏您的内容,以便可以将标题作为模板变量单独访问。您可以将与每个标题关联的信息存储为dicts列表:

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 %}