単語の切り捨てフィルタを使用して切り捨てられた後、djangoに変数から末尾のスペースを取り除く方法はありますか? つまり、私はこれを行います:
{{post.body|safe|truncatewords:65}}
そして、最終的に次のようなものが得られます。
ふふふふふふふふふふふふ…
ただし、その末尾のスペースは避けたいと思います。次のようになります。
ふふふふふふふふふふふふふ...
これを行うための組み込みの方法はありますか - 見つけられませんでした - または、カスタム フィルターを作成する必要がありますか?
編集:
記録として、他の誰かがこの問題を抱えている場合は、カスタムの切り捨て関数を作成する必要があります。これに取り組んでいると、django はおそらく "..." を配列の最後のインデックスにし、それを空白で結合していることに気付きました。カスタム フィルターを作成しない限り、これを取り除くことはできません。
最後の単語と ... の間にスペースを入れない切り捨ての私の実装は次のとおりです。
私のテンプレートでは:
{{post.body|truncate:65|safe}}
私のtemplatetagsパッケージではこれ:
@register.filter
@stringfilter
def truncate(value,end):
words = value.split()
keep = words[0:end]
keep[end-1] = keep[end-1]+"..."
return " ".join(keep)
できます!ご覧のとおり、作るのは簡単だったでしょう
keep[end] = "..."
これは、 truncatewords 関数がおそらく行うと私が信じていることです。しかし、参加するとその前に空白ができるため、見栄えがよくありません。ので、よかったら使ってください!