Как показать первые 2-3 предложения некоторого контента в шаблоне django?
У меня есть объект post, который имеет атрибут content, который по сути является TextField. Я хочу показать первые несколько предложений (не слов, я хочу, чтобы оно усекалось после 2-3 полных остановок, или что-то вроде этого) в качестве предварительного просмотра сообщения на моей веб-странице.
{{ post.content }}
Как мне сделать это в моем шаблоне?
Сначала необходимо разбить заданный текст на предложения, для этого можно использовать функцию, представленную в этом ответ
Далее, зарегистрируйте свой пользовательский тег шаблона, который использует вышеуказанную функцию, и вот, пожалуйста:
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 }}