Класс Truncator

Класс Truncator применяется к строке и возвращает новый объект, который позволяет обрезать строку различными способами. Основные методы класса - chars для обрезки по количеству символов и words для обрезки по количеству слов. Класс учитывает HTML-теги и может корректно обрезать текст, не разрывая структуру тегов.

Синтаксис

pythonfrom django.utils.text import Truncator

truncator = Truncator(text)
result = truncator.chars(length, truncate='...', html=False)
result = truncator.words(length, truncate='...', html=False)

Параметры методов:

Пример . С методом chars

Давайте обрежем строку до 10 символов:

pythonfrom django.utils.text import Truncator

text = "Это длинная строка для обрезки"
truncator = Truncator(text)
res = truncator.chars(10)
print(res)

Результат выполнения кода:

python"Это длинная..."

Пример . С методом words

Давайте обрежем строку до 3 слов:

pythonfrom django.utils.text import Truncator

text = "Это длинная строка для обрезки"
truncator = Truncator(text)
res = truncator.words(3)
print(res)

Результат выполнения кода:

python"Это длинная строка..."

Пример . С HTML-тегами

Давайте обрежем HTML-строку до 20 символов, сохраняя структуру тегов:

pythonfrom django.utils.text import Truncator

html_text = "<p>Это <strong>длинная</strong> строка с HTML</p>"
truncator = Truncator(html_text)
res = truncator.chars(20, html=True)
print(res)

Результат выполнения кода:

python"<p>Это <strong>длинная</strong> с...</p>"

Пример . С кастомным окончанием

Давайте обрежем строку до 15 символов с кастомным окончанием:

pythonfrom django.utils.text import Truncator

text = "Это очень длинная строка для примера"
truncator = Truncator(text)
res = truncator.chars(15, truncate=' [read more]')
print(res)

Результат выполнения кода:

python"Это очень длинная [read more]"

Смотрите также

  • метод chars,
    который обрезает строку до указанного количества символов
  • метод words,
    который обрезает строку до указанного количества слов
  • функция slugify,
    которая преобразует строку в URL-совместимый формат
  • функция mark_safe,
    которая помечает строку как безопасную для вывода в шаблонах