forループでいくつかの値を吐き出しているので、X文字のみが表示されるようにしたいと思います。私はDjangoに比較的慣れていません。
例えば:
<div class="bookauthor">
by
{% for author in book.volumeInfo.authors %}
{% if not forloop.first %}&{% endif %}
{{author}}
{% endfor %}
</div>
本の著者のリストを作成します。例:
Lennart Berggren&Jonathan M. Borwein&Peter B. Borwein
著者のリストが長くなることがあるので、30文字だけが欲しいです。
truncatechars( Django 1.4の新機能)を使用して、のような単一の値でこれを行うことができることは理解して{{author|truncatechars:9}}
いますが、forループ、またはforループからの結果のテキストに適用するエレガントな方法があるかどうか疑問に思っています。不明な点がある場合はお知らせください。
編集
{%filter%}で使用すると、truncatecharsが正しく機能しないようです。それが生成するのは「...」だけです。もう少しテストします。バグの可能性があります。truncatewordsはうまく機能し、とにかく私はこの状況により適しているかもしれません。
<div class="bookauthor">
by
{% filter truncatechars:30 %}
{% for author in book.volumeInfo.authors %}
{% if not forloop.first %}&{% endif %}
{{author}}
{% endfor %}
{% endfilter %}
</div>