Ограничить количество символов с помощью фильтра шаблонов Django
Я пытаюсь вывести первые 255 символов описания в списке элементов и ищу метод для его получения.
Пример: у меня есть переменная, содержащая около 300 символов.
Я вызываю эту переменную следующим образом: {{ my_variable|characterlimit:255 }}
и он вернет только первые 255 символов этой переменной.
Если этого тега не существует, я просто создам его (и предположим, что он входит в django), но я хотел убедиться, что это не произошло, прежде чем я потратил время на это. Спасибо!
Ответы
Ответ 1
Если "my_variable" является строкой, вы можете воспользоваться фильтром среза , который обрабатывает строку как список символов. Если это набор слов, грубый эквивалент truncatewords - но это не совсем похоже на вашу потребность.
truncatewords
также добавляет эллипсис ...
в конце усеченного результата.
Использование будет чем-то вроде
{{ my_variable|slice:":255" }}
Ответ 2
Существует официальный официальный встроенный фильтр:
{{ variable|truncatechars:255 }}
Ответ 3
Если вы хотите усечь слово, взгляните на это
https://docs.djangoproject.com/en/1.4/ref/templates/builtins/#truncatechars
Ответ 4
Более простой способ использования стандартного тега шаблона:
{{ variable|stringformat:".10s" }}
В этом случае 10 - это аргумент позиции, а для строки - максимальное количество отображаемых символов.
Ответ 5
К сожалению, этого не существует. Есть шаги для его реализации, но он все еще находится на стадии разработки (ну, реализовано, но ждет конструктивного решения), как описано здесь.
Патч, прикрепленный к этому биту, содержит реализацию.
Ответ 6
Использование шаблонного фильтра для усечения текста не очень подходит для адаптивного дизайна. Поэтому вы также можете использовать css для усечения вашего текста, который является адаптивным. Я знаю, что ОП попросил сделать это с помощью шаблонаного фильтра django.
Вы можете получить отзывчивый усеченный текст, используя это:
.class {
width: 100%;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}