django模板字符串 - 用行空格替换换行符

时间:2014-07-19 20:20:31

标签: django string replace django-templates newline

我的django1.4模板中有一个字符串,我想用空格替换换行符。我只想用模板字符串中的一个空格替换换行符。

到目前为止,我对django docs,Google和SO的所有搜索都没有给我一个答案。

这是我模板中的字符串:

{{ education_detail.education_details_institution_name|safe|truncatechars:20|striptags }}

当我保存以下字符串时:

University
Bachelor of Something
2008 - 2010

django模板中的字符串呈现为:

UniversityB... 

我想用yB之间的空格替换换行符,如下所示:

University B...

我该怎么做?

2 个答案:

答案 0 :(得分:2)

您可以依靠内置的truncatechars过滤器行为来替换带有空格的换行符。您所需要的只是传递length字符串作为参数,这样您就不会看到字符串被缩短:

{% with value|length as length %}
    {{ value|truncatechars:length }}
{% endwith %}

这有点hacky,但只使用内置过滤器。

如果您需要此类功能可以重复使用,则可以随时编写custom filter

答案 1 :(得分:2)

这是我最终运作的自定义过滤器代码:

from django import template

register = template.Library()

@register.filter(name='replace_linebr')
def replace_linebr(value):
    """Replaces all values of line break from the given string with a line space."""
    return value.replace("<br />", ' ')

以下是对模板的调用:

{{ education_detail.education_details_institution_name|replace_linebr }}

我希望这会对其他人有所帮助。