0

在使用截断词过滤器截断变量后,django 中有没有办法从变量中去除尾随空格?即我这样做:

{{post.body|safe|truncatewords:65}}

最终得到这样的东西:

呜呜呜呜呜呜呜呜呜

但是我宁愿没有那个尾随空间。它应该如下所示:

呜呜呜呜呜呜呜呜呜呜

有没有内置的方法来做到这一点 - 我找不到 - 还是我只需要制作一个自定义过滤器?

编辑:

作为记录,如果其他人遇到此问题,您将需要编写自定义截断函数。当我这样做时,我意识到 django 可能正在将“...”作为数组中的最终索引并将其与空格连接起来。如果不编写自定义过滤器,您将永远无法摆脱它!

这是我的 truncate 实现,它在最后一个单词和 ... 之间没有空格:

在我的模板中:

{{post.body|truncate:65|safe}}

在我的模板标签包中:

@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 方法。

查看此答案以创建您自己的修剪过滤器或此anwser以查看使用 strip 方法的示例。

于 2013-05-09T01:15:28.830 回答