Метод chars

Метод chars применяется к экземпляру класса Truncator и возвращает обрезанную версию исходной строки, ограниченную заданным количеством символов. В отличие от метода Truncator/method/words/">words, который обрезает по словам, chars работает на уровне отдельных символов. Метод принимает обязательный аргумент - количество символов, до которого нужно обрезать строку, и опциональные параметры для настройки многоточия и обработки HTML-тегов.

Синтаксис

pythonfrom django.utils.text import Truncator

truncator = Truncator(text)
result = truncator.chars(num, truncate=None, html=False)

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

Пример

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

pythonfrom django.utils.text import Truncator

text = "This is a very long article about Django"
truncator = Truncator(text)
res = truncator.chars(10)
print(res)

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

python"This is a …"

Пример

Давайте обрежем строку до 15 символов с использованием пользовательского окончания:

pythonfrom django.utils.text import Truncator

text = "Django is a high-level Python web framework"
truncator = Truncator(text)
res = truncator.chars(15, truncate="...")
print(res)

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

python"Django is a ..."

Пример

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

pythonfrom django.utils.text import Truncator

html_text = "<p>This is a <strong>very</strong> long article about Django</p>"
truncator = Truncator(html_text)
res = truncator.chars(20, html=True)
print(res)

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

python"<p>This is a <strong>v</strong>…</p>"

Пример

Давайте используем метод для обрезки текста в модели:

pythonfrom django.db import models
from django.utils.text import Truncator

class Article(models.Model):
  title = models.CharField(max_length=200)
  content = models.TextField()

  def get_short_content(self):
    truncator = Truncator(self.content)
    return truncator.chars(50)

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

python"Very long article content truncated to 50 characters…"

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

  • метод words,
    который обрезает строку по количеству слов
  • класс Truncator,
    который предоставляет методы для обрезки текста
  • функция slugify,
    которая преобразует строку в URL-совместимый формат
  • функция strip_tags,
    которая удаляет HTML-теги из строки