Django模板在fullstop上分割文本

时间:2010-09-08 14:25:33

标签: django django-templates

使用django模板我想在第一个fullstop上拆分一段文本。 然后我想给第一个句子一个突出显示,然后给文本的其余部分一个正常的类。我该怎么办?例如(我知道这不起作用)

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

1 个答案:

答案 0 :(得分:10)

定义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测试的。