Как найти, что содержание является усеченным?

Я нашел этот проект на коде Google. Это CCNET плагин для генерации маркировки в CCNET.

Эти DLL тестируется с CCNET 1.3, но это работает с CCNET 1.4 для меня. Я успешно использую этот плагин для маркировки моей сборки.

Теперь на передачу его к MSBuild...

8
задан Dr. Younes Henni 20 October 2017 в 09:17
поделиться

4 ответа

Это довольно запутанно, но у django есть несколько странных углов. В основном я полагаю, что если длина строки такая же, если вы усекаете слова x и x + 1, тогда строка не была усечена ...

{% ifnotequal post.body|truncatewords_html:30|length post.body|truncatewords_html:31|length %}
   <a href="#">read more...</a>
{% endifnotequal %}
6
ответ дан 5 December 2019 в 19:00
поделиться

Все сводится к личным предпочтениям, но, на мой взгляд, вы слишком много работаете с шаблоном. Я бы создал метод для модели Post, read_more_needed () , возможно, который возвращает True или False в зависимости от длины текста. например:

def read_more_needed(self):
    from django.utils.text import truncate_html_words
    return not truncate_html_words(self.body,30)==truncate_html_words(self.body,31)

Тогда ваш шаблон будет выглядеть так:

{% if post.read_more_needed %}
  {{ post.body|truncatewords_html:30|safe }}<a href="{{ post.url}}">read more</a>
{% else %}
  {{ post.body|safe }}
{% endif %}
1
ответ дан 5 December 2019 в 19:00
поделиться

Вы можете написать собственный тег шаблона (см. django docs ) или вручную проверить в шаблоне, превышает ли содержимое, которое вы хотите отображать, заданную длину, с помощью length встроенный фильтр.

2
ответ дан 5 December 2019 в 19:00
поделиться

Ознакомьтесь с http://code.djangoproject.com/ticket/6799

Этот патч предоставляет метод замены пробелов по умолчанию для усеченного текста.

0
ответ дан 5 December 2019 в 19:00
поделиться
Другие вопросы по тегам:

Похожие вопросы: