0

単語の切り捨てフィルタを使用して切り捨てられた後、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 関数がおそらく行うと私が信じていることです。しかし、参加するとその前に空白ができるため、見栄えがよくありません。ので、よかったら使ってください!

4

1 に答える 1

1

独自のフィルターを作成するか、strip メソッドを直接呼び出す必要があります。

この回答を見、独自のトリム フィルターを作成するか、このアンサーを見て、ストリップ メソッドの使用例を確認してください。

于 2013-05-09T01:15:28.830 に答える