如何在 django 模板中显示某些内容的前 2-3 句话?

How to show first 2-3 sentences of some content in django template?

我有一个 post 对象,它的内容属性基本上是一个 TextField。我想在我的网页上显示前几句话(不是单词,我希望它在 2-3 个句号或类似的东西后被截断)作为 post 的预览。

{{ post.content }}

如何在我的模板中执行此操作?

首先,您需要将给定的文本拆分成句子,可以使用本文提供的函数answer

接下来,注册使用上述功能的自定义模板标签,然后开始:

from django import template
from django.template.defaultfilters import stringfilter

from <your utils package> import split_into_sentences

register = template.Library()

@register.filter
@stringfilter
def truncate_sentences(value, length=3):
    sentences = split_into_sentences(value)
    return ' '.join(sentences[:length])

然后只需在您的模板中使用自定义模板标签:

{{ post.content|truncate_sentences:3 }}