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

2024-05-10 19:01:34 发布

您现在位置:Python中文网/ 问答频道 /正文

我想知道如何在模板中复制一些字符串。具体地说,我希望在页面顶部创建一个目录(类似于导航),其中包含指向更底层内容的锚定链接(比如http://www.google.com/transparencyreport/faq/)。我希望链接有相同的文本作为节标题进一步向下。在

我曾考虑过使用{%with%},但将所有内容嵌套在{%with%}块中似乎很不方便。在

类似于Whats the best way to duplicate data in a django template?,但我没有在任何地方继承这个模板,所以使用{%block%}并不是一个真正的选择。在


Tags: 字符串目录com模板http内容链接www
2条回答

在您的视图中,您可能会将内容分解,以便可以将标题作为模板变量单独访问。您可以将与每个标题相关联的信息存储为dict列表:

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

然后,在模板中,您可以使用以下内容生成表:

^{pr2}$

你的页面内容看起来像这样:

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

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

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

相关问题 更多 >