Подтвердить что ты не робот

Ограничить количество символов с помощью фильтра шаблонов Django

Я пытаюсь вывести первые 255 символов описания в списке элементов и ищу метод для его получения.

Пример: у меня есть переменная, содержащая около 300 символов.

Я вызываю эту переменную следующим образом: {{ my_variable|characterlimit:255 }}

и он вернет только первые 255 символов этой переменной.

Если этого тега не существует, я просто создам его (и предположим, что он входит в django), но я хотел убедиться, что это не произошло, прежде чем я потратил время на это. Спасибо!

4b9b3361

Ответ 1

Если "my_variable" является строкой, вы можете воспользоваться фильтром среза , который обрабатывает строку как список символов. Если это набор слов, грубый эквивалент truncatewords - но это не совсем похоже на вашу потребность.

truncatewords также добавляет эллипсис ... в конце усеченного результата.

Использование будет чем-то вроде

{{ my_variable|slice:":255" }}

Ответ 4

Более простой способ использования стандартного тега шаблона:

{{ variable|stringformat:".10s" }}

В этом случае 10 - это аргумент позиции, а для строки - максимальное количество отображаемых символов.

Ответ 5

К сожалению, этого не существует. Есть шаги для его реализации, но он все еще находится на стадии разработки (ну, реализовано, но ждет конструктивного решения), как описано здесь.

Патч, прикрепленный к этому биту, содержит реализацию.

Ответ 6

Использование шаблонного фильтра для усечения текста не очень подходит для адаптивного дизайна. Поэтому вы также можете использовать css для усечения вашего текста, который является адаптивным. Я знаю, что ОП попросил сделать это с помощью шаблонаного фильтра django.

Вы можете получить отзывчивый усеченный текст, используя это:

.class {
    width: 100%;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}