模板过滤器修剪任何前导或尾随空白

问题描述:

在django中是否有模板过滤器可以修剪输入文本中的任何前导或尾随空白。模板过滤器修剪任何前导或尾随空白

喜欢的东西:{{ var.example|trim }}

你可以自己做

from django import template 
from django.template.defaultfilters import stringfilter 

register = template.Library() 

@register.filter 
@stringfilter 
def trim(value): 
    return value.strip() 

Documentation

+12

任何访问这里的人都应该看看Ibatteau的解决方案,它更简单 - 只需在模板本身内使用.strip(不需要注册新的过滤器)。 – bryn 2013-07-22 23:02:09

+2

使用'{{var.example.strip}}'确实更简单,但是这里的解决方案也有其用处。例如,它允许你执行'{%filter trim%} {%someothertag%} {%endfilter%}',这是不可能的。 – jlh 2016-06-16 09:04:09

Django templates允许您通过使用访问方法和属性 ''语法:

{{ var.example.strip }} 

您可以通过链接其他过滤器,当你处理HTML扩展此,如:

{{ var.example.strip|safe|removetags:"p img" }} 

在这里,我们首先删除任何<p><img>标签,然后告诉Django它可以安全地渲染剩下的内容,我们已经删除了任何空格。

+4

是否有文件记录或是否是一种非官方的技巧? – Medorator 2014-06-08 11:26:44

+3

它不是Django函数,但是是Python的。这里记录:https://docs.python.org/2/library/stdtypes.html#str.strip。 Django模板变量的文档:https://docs.djangoproject.com/en/dev/ref/templates/language/#variables – maciek 2015-08-24 10:44:29

+1

一个评论 - 'removetags'过滤器从django 1.10被删除,所以要小心 – Jerzyk 2016-07-01 15:29:39