如何将 替换为空格?Django模板过滤器处理后单词无间距问题
解决Django模板中 替换后单词无空格的问题
我刚好碰到过类似的情况,给你捋清楚问题出在哪以及怎么修复:
问题根源:你用的
cut:" "是直接把 这个字符串删掉了,但 本来是用来表示空格的,删掉之后原本的空格位置就变成了空字符,单词自然就粘在一起了。咱们需要的是把这个HTML实体替换成普通空白空格,而不是移除它。修正后的模板代码:
{{ i.content|striptags|replace:" " " "|truncatewords:30|safe }}为什么这么调整?
- 先执行
striptags移除HTML标签,避免后续处理被多余标签干扰; - 用
replace把 (也就是 的转义形式)替换成普通空格,这样单词之间的分隔就正常保留了; - 再用
truncatewords截断到指定单词数,最后加safe确保渲染时不会转义正常内容。
如果你想尽量保留原来的过滤顺序,也可以直接把
cut替换成replace,比如:{{ i.content|truncatewords:30|striptags|safe|replace:" " " " }}不过更推荐先处理空格和标签再截断,这样统计的单词数会更准确。
- 先执行
内容的提问来源于stack exchange,提问作者THe THuG
相关产品推荐
相关产品推荐

