Django 模板在句号上分割文本

标签 django django-templates

使用 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/

相关文章:

mysql - 错误 1054, "Unknown column ' 中的 'field list' student_info.id' - Django

python - 如何在 django CBV(ListView) 中发送 2 个查询集

python - 将嵌套的 JSON 结构反序列化为 Django 模型对象

python - 往返 MySql 的开销?

python - django 两个 ModelForms 在一个模板上具有相同的字段名称

python - 如何在 Django View 中获取 POST 请求值?

python - Django+ Bootstrap : concatentating bootstrap_alert

html - 关于for循环(循环模板)

python - 为不同的设置配置不同的日志文件位置的 DRY 方法是什么?

django - 如何从 forloop.counter 中获取字母?