如何在Django模板中干燥常见文本?
我有一些静态文本需要显示在模板中的两个位置 例如:如何在Django模板中干燥常见文本?,django,django-templates,Django,Django Templates,我有一些静态文本需要显示在模板中的两个位置 例如: <div> {% if something %} This is a static text {% else %} Something else happened {% endif %} </div> ... more html <span> {% if something %} This is a static text {% else %} Something else h
<div>
{% if something %}
This is a static text
{% else %}
Something else happened
{% endif %}
</div>
... more html
<span>
{% if something %}
This is a static text
{% else %}
Something else happend
{% endif %}
</span>
{%if某物%}
这是一个静态文本
{%else%}
发生了别的事
{%endif%}
... 更多html
{%if某物%}
这是一个静态文本
{%else%}
还发生了别的事
{%endif%}
include template
,但这可能不是实现目标的最佳方式最好的方法是什么?我有一个类似文件的Java属性,用于所有资源字符串。我只要端上我想要的。把这些放在一个地方也能使翻译变得容易 例:
有几种方法,但这可能取决于文本内容和使用频率。没有完整的细节,很难推荐具体的选择
{% load i18n %}
<div>
{% if something %}
{% trans "static" %}
{% else %}
{% trans "something else" %}
{% endif %}
</div>
除了对多语言有用外,如果您将来想要更改它,它更容易进行复制写入,因为您可以只查看一个文件而不是浏览多个模板。您可以使用flatblocks: 或块: 对于您的问题来说,这些方法可能有些过分,因为它们将您的代码片段存储在数据库中,但它们增加了通过管理员编辑代码片段的好处
{% load chunks %}
<div>
{% if something %}
{% chunk "something" %}
{% else %}
{% chunk "something_else" %}
{% endif %}
</div>
{%loadchunks%}
{%if某物%}
{%chunk“某物”%}
{%else%}
{%chunk“something_other”%}
{%endif%}
有很多分叉或类似的项目,例如:
{% if something %}
This is a static text
{% else %}
Something else happened
{% endif %}
“something”可以作为变量传递给模板标记,这样您就可以以变量的方式使用整个块。如果包含的文本变大,请使用“include”标记 {%include“myapp/helptext.html”%}
GrtzG使用
include
两次对我来说很好。我真的很高兴我发现了这一点;它似乎很有用。但我想知道为什么。似乎标准的{%include%}
标记适用于我能想到的所有情况。有什么例子吗?
{% load chunks %}
<div>
{% if something %}
{% chunk "something" %}
{% else %}
{% chunk "something_else" %}
{% endif %}
</div>
{% if something %}
This is a static text
{% else %}
Something else happened
{% endif %}