使用 django 模板,我想在第一个句号上分割一个文本 block 。 然后,我想给第一句话一类突出显示,然后给文本的其余部分一类正常。我该怎么做?例如(我知道这行不通)
text = Aliquam pretium vestibulum nibh, vel molestie velit varius nec Curabitur non neque sed elit tincidunt. Dignissim eget vel du molestie magna auctor faucibus. Curabitur id nisl nec ipsum molestie egestas in at dolor. Morbi et risus ac quam sagittis accumsan. Morbi vitae elementum metus. Vestibulum malesuada ornare elit, et interdum nisi imperdiet sed.
<p class="highlight">{{text|split:"."[0]}}</p>
<p class="normal">{{text|split:"."[1]}}</p>
这会给出
<p class="highlight">Aliquam pretium vestibulum nibh, vel molestie velit varius nec Curabitur non neque sed elit tincidunt.</p>
<p class="normal">Dignissim eget vel du molestie magna auctor faucibus. Curabitur id nisl nec ipsum molestie egestas in at dolor. Morbi et risus ac quam sagittis accumsan. Morbi vitae elementum metus. Vestibulum malesuada ornare elit, et interdum nisi imperdiet sed.</p>
我使用的是 Django 1.1
最佳答案
定义 custom filter ,说mysplit
。
@register.filter
def mysplit(value, sep = "."):
parts = value.split(sep)
return (parts[0], sep.join(parts[1:]))
然后在模板中使用过滤器:
{% with text|mysplit:"." as parts %}
<p class="highlight">{{ parts.0 }}</p>
<p class="normal">{{ parts.1 }}</p>
{% endwith %}
这是使用 Django 1.2.1 进行测试的。
关于Django 模板在句号上分割文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3668722/