ページレイアウトの兼ね合いで、長い文字列を省略する必要があり、
Django Template 内で filter 等で実現できないか調べたところ、
丁度いいのがあったので、記載します。
StackOverFlowで、以下のようなQ&Aがありました。
Django template tag to truncate text - Stack Overflow
Django 1.4 から truncatechars
というFilterが使えるらしく、
以下のように記述すると、30文字を超える場合、末尾を...
にして文字を省略してくれます。
<a href="{{ next.get_absolute_url }}">{{ next|truncatechars:30 }} ></a>
ちなみに、django/defaultfilters.py at master · django/django
のソースを見ていると、
truncatechars
以外に、
truncatewords
、
truncatechars_html
、
truncatewords_html
filterもありました。
違いは、truncatechars
は文字数で、truncatewords
は単語数で省略してくれるようです。
truncatechars_html
と、truncatewords_html
はHTMLを意識して、タグを壊さずに、
省略してくれるという、ちょっと興味深い処理を行ってくれるようです。
以上です。
コメント