如果我的django模板中有一个格式为:
的字符串Line 1<br />Line 2<br />Line 3<br />Line 4<br />
我希望将其格式化为:
Line 1 Line 2 Line 3 Line 4
我想用行空格替换换行符(&lt; br /&gt;),因此字符串在一行上。
我查看了django文档here和here,但我找不到自定义过滤器的可行替换。
有没有人对工作示例有任何建议或链接?
干杯。
编辑 - 更多背景 - 按要求
存储在db中的字符串是:
Line 1<br />Line 2<br />Line 3<br />Line 4<br />
在django模板中调用:
{{ education_detail.education_details_institution_name|truncatechars:20 }}
在浏览器中显示为:
Line 1<br />Line 2<br />Line 3<br />Line 4<br />
答案 0 :(得分:1)
这是用换行符替换换行符的代码。
我遇到的问题是我没有添加@ register.filter(name =&#39; replace_linebr&#39;)
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 }}
我希望这会对其他人有所帮助。
答案 1 :(得分:0)
也许应用内置的striptags
或removetags
过滤器?
注意在Django 1.8中不推荐使用removetags
。
https://docs.djangoproject.com/en/dev/ref/templates/builtins/#striptags https://docs.djangoproject.com/en/1.8/ref/templates/builtins/#removetags (文档似乎都注意到了一些安全警告)
{% filter removetags:"br" %}
AA<br/>
BB<br/>
CC<br/>
DD<br/>
{% endfilter %}
或
{% filter striptags %}
AA<br/>
BB<br/>
CC<br/>
DD<br/>
{% endfilter %}