default
如果值被评估为False
。比如[]
,""
,None
,{}
等这些在if
判断中为False
的值,都会使用default
过滤器提供的默认值。示例代码如下:
{{ value|default:"nothing" }}
如果value
是等于一个空的字符串。比如""
,那么以上代码将会输出nothing
。
default_if_none
如果值是None
,那么将会使用default_if_none
提供的默认值。这个和default
有区别,default
是所有被评估为False
的都会使用默认值。而default_if_none
则只有这个值是等于None
的时候才会使用默认值。示例代码如下:
{{ value|default_if_none:"nothing" }}
如果value
是等于""
也即空字符串,那么以上会输出空字符串。如果value
是一个None
值,以上代码才会输出nothing
。
first
返回列表/元组/字符串中的第一个元素。示例代码如下:
{{ value|first }}
如果value
是等于['a','b','c']
,那么输出将会是a
。
last
返回列表/元组/字符串中的最后一个元素。示例代码如下:
{{ value|last }}
如果value
是等于['a','b','c']
,那么输出将会是c
。
floatformat
使用四舍五入的方式格式化一个浮点类型。如果这个过滤器没有传递任何参数。那么只会在小数点后保留一个小数,如果小数后面全是0,那么只会保留整数。当然也可以传递一个参数,标识具体要保留几个小数。
如果没有传递参数:
| value | 模版代码 | 输出 | | — | — | — | | 34.23234 |
{{ value|floatformat }}
| 34.2 | | 34.000 |{{ value|floatformat }}
| 34 | | 34.260 |{{ value|floatformat }}
| 34.3 |如果传递参数 | value | 模版代码 | 输出 | | — | — | — | | 34.23234 |
{{value|floatformat:3}}
| 34.232 | | 34.0000 |{{value|floatformat:3}}
| 34.000 | | 34.26000 |{{value|floatformat:3}}
| 34.260 |
join
类似与Python
中的join
,将列表/元组/字符串用指定的字符进行拼接。示例代码如下:
{{ value|join:"/" }}
如果value
是等于['a','b','c']
,那么以上代码将输出a/b/c
。
length
获取一个列表/元组/字符串/字典的长度。示例代码如下:
{{ value|length }}
如果value
是等于['a','b','c']
,那么以上代码将输出3
。如果value
为None
,那么以上将返回0
。
lower
将值中所有的字符全部转换成小写。示例代码如下:
{{ value|lower }}
如果value
是等于Hello World
。那么以上代码将输出hello world
。
upper
类似于lower
,只不过是将指定的字符串全部转换成大写。
random
在被给的列表/字符串/元组中随机的选择一个值。示例代码如下:
{{ value|random }}
如果value
是等于['a','b','c']
,那么以上代码会在列表中随机选择一个。
safe
标记一个字符串是安全的。也即会关掉这个字符串的自动转义。示例代码如下:
{{value|safe}}
如果value
是一个不包含任何特殊字符的字符串,比如<a>
这种,那么以上代码就会把字符串正常的输入。如果value
是一串html
代码,那么以上代码将会把这个html
代码渲染到浏览器中。
slice
类似于Python
中的切片操作。示例代码如下:
{{ some_list|slice:"2:" }}
以上代码将会给some_list
从2
开始做切片操作。
stringtags
删除字符串中所有的html
标签。示例代码如下:
{{ value|striptags }}
如果value
是<strong>hello world</strong>
,那么以上代码将会输出hello world
。
truncatechars
如果给定的字符串长度超过了过滤器指定的长度。那么就会进行切割,并且会拼接三个点来作为省略号。示例代码如下:
{{ value|truncatechars:5 }}
如果value
是等于北京欢迎您~
,那么输出的结果是北京...
。可能你会想,为什么不会北京欢迎您...
呢。因为三个点也占了三个字符,所以北京
+三
个点的字符长度就是5。
truncatechars_html
类似于truncatechars
,只不过是不会切割html
标签。示例代码如下:
{{ value|truncatechars:5 }}
如果value
是等于<p>北京欢迎您~</p>
,那么输出将是<p>北京...</p>
。