/ / Como truncar texto no loop de template do Django - django, django-templates

Como truncar texto no loop de modelo do Django - django, django-templates

Estou apresentando alguns valores com um loop for e quero ter certeza de que ele exibe apenas X caracteres. Eu sou relativamente novo no Django.

Por exemplo:

  <div class="bookauthor">
by
{% for author in book.volumeInfo.authors %}
{% if not forloop.first %}&amp;{% endif %}
{{author}}
{% endfor %}
</div>

Produziria uma lista de autores de livros, por exemplo:

por Lennart Berggren e Jonathan M. Borwein e Peter B. Borwein

e gostava de apenas 30 caracteres, já que às vezes a lista de autores pode ser longa.

Eu entendo que posso usar truncatechars (novo no Django 1.4) para fazer isso em um único valor, como {{author|truncatechars:9}}, mas estou me perguntando se há uma maneira elegante de aplicar ao loop for ou ao texto resultante do loop for. Informe-me se isso não está claro.

EDITAR

truncatechars não parece funcionar corretamente quandousado em um {% filter%}. Tudo o que produz é "...". Vou testar mais alguns, pode ser um bug. Truncatewords funciona bem e, de qualquer forma, posso ser mais adequado para essa situação.

      <div class="bookauthor">
by
{% filter truncatechars:30 %}
{% for author in book.volumeInfo.authors %}
{% if not forloop.first %}&amp;{% endif %}
{{author}}
{% endfor %}
{% endfilter %}
</div>

Respostas:

1 para resposta № 1

{% filter %}