在使用截断词过滤器截断变量后,django中是否有一种方法可以从变量中去除尾随空格? 即我这样做:
{{post.body|safe|truncatewords:65}}
最终得到这样的东西:
Foo foo foo foo foo foo foo foo foo ...
但是我宁愿没有这个尾随空间。它应该是这样的:
Foo foo foo foo foo foo foo foo foo ...
是否有内置的方法来执行此操作 - 我找不到 - 或者我只需要制作自定义过滤器?
编辑:
对于记录,如果其他人遇到此问题,您将需要编写自定义截断函数。正如我所说的那样,我意识到django可能会将“...”作为数组中的最终索引并将其与空白区域连接起来。如果不编写自定义过滤器,您将永远无法摆脱这种情况!
这是我的truncate实现,它没有在最后一个单词和...之间放置空格:
在我的模板中:
{{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函数可能会这样做。但这看起来并不漂亮,因为当你加入时会有空白空间!如果你愿意,可以使用它!