add
这个过滤器会尝试将值和参数值转换成整型后再进行相加。如果是字符串,会进行字符串拼接;如果是列表,则会拼接成一个列表。
{{ value|add:"2" }}
如果value为4,那么结果将是6。如果value是一个普通的字符串,比如abc,那么结果将是abc2。
cut
通过cut指定想要移除value中的字符。类似于python中的 replace(args,"")
。
{{ value|cut:" " }}
date
将日期按照指定的格式输出:
# 数据
context = {
"birthday": datetime.now()
}
# 模板
{{ birthday|date:"Y/m/d" }}
常用的格式字符:
格式字符 | 描述 | 示例 |
---|---|---|
Y | 四位数字的年份 | 2020 |
m | 两位数字的月份 | 01-12 |
n | 月份,1-9前面没有0前缀 | 1-12 |
d | 两位数字的天,1-9前面有0前缀 | 01-31 |
j | 天,1-9前面没有0前缀 | 1-31 |
g | 小时,12小时格式,1-9前面没有0前缀 | 1-12 |
h | 小时,12小时格式,1-9前面有0前缀 | 01-12 |
G | 小时,24小时格式,1-9前面没有0前缀 | 1-23 |
H | 小时,24小时格式,1-9前面有0前缀 | 01-23 |
i | 分钟,1-9前面有0前缀 | 00-59 |
s | 秒,1-9前面有0前缀 | 00-59 |
default
如果值被评估为False。比如[],””,None等这些在if判断中为False的值,都会使用default过滤器提供的默认值。
{{ value|default:"您还没有设置签名" }}
如果value等于一个空的字符串。比如””,那么以上代码将会输出:您还没有设置签名。
first
返回列表/元组/字符串中的第一个元素。
{{ value|first }}
last
返回列表/元组/字符串中的最后一个元素。
{{ value|last }}
floatformat
使用四舍五入的方式,格式化一个浮点类型。
- 如果这个过滤器没有传递任何参数,那么只会在小数点后保留一个小数;
- 如果小数后面全是0,那么只会保留整数;
- 如果传递一个整型参数,则表示具体要保留几个小数。
<li>{{ 34.32|floatformat }}</li> 34.3
<li>{{ 34.35|floatformat }}</li> 34.4
<li>{{ 34.353333|floatformat:3}}</li> 34.353
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 }}
upper
将指定的字符串全部转换成大写。
{{ value|upper }}
random
在传递来的列表/字符串/元组中,随机的选择一个值。
{{ value|random }}
safe
标记一个字符串是安全的。相当于关掉这个字符串的自动转义。
'info': '<a href="https://www.baidu.com">百度</a>'
{{ info | safe }}
- 如果info是一个不包含任何特殊字符的字符串,那么以上代码就会把字符串正常的输入;
- 如果info是一串html代码,那么以上代码将会把这个html代码渲染到浏览器中。
slice
类似于Python中的切片操作。
{{ some_list|slice:"2:" }}
striptags
删除字符串中所有的html标签。
'info': '<a href="https://www.baidu.com">百度</a>'
{{ info| striptags }}
truncatechars
如果给定的字符串长度超过了过滤器指定的长度。那么就会进行切割,并且会拼接三个点来作为省略号。
{{ value|truncatechars:5 }}
更多可以查看Django源码:
from django.template import defaultfilters,defaulttags