【问题标题】:Strip content of spaces after truncatewords filter在 truncatewords 过滤器后去除空格内容
【发布时间】:2013-05-03 09:30:58
【问题描述】:

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

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

最终得到这样的结果:

foo foo foo foo foo foo foo foo ...

但是我宁愿没有那个尾随空格。它应该是这样的:

Foo foo foo foo foo foo foo foo...

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

编辑:

作为记录,如果其他人遇到此问题,您将需要编写自定义截断函数。当我这样做时,我意识到 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 函数可能会这样做。但这看起来并不漂亮,因为当你加入时,它前面会有空白!喜欢就用这个吧!

【问题讨论】:

    标签: python django


    【解决方案1】:

    您需要创建自己的过滤器或直接调用 strip 方法。

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

    【讨论】:

      猜你喜欢
      • 2017-05-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多