过滤的使用方法

过滤器的使用方法为 {{ 变量 | filter:参数 }}。为模板过滤器提供参数的方式是:过滤器 + 冒号 + 参数,中间不能有空格!

模板过滤器

add

将add后的参数加给变量。

{{ value | add:"2" }}  # 如果value为1的话,那么将会输出3

add过滤器将首先尝试将两个值强转为整型。如果失败,将尝试将值添加到一起,适用于字符串、列表等。如果仍然失败,结果将为空字符串。

# 假设l1输出为[1, 2];l2输出为[3, 4]
{{ l1 | add:l2 }}  # 此时输出结果为[1, 2, 3, 4]

可以强制转换为整数的字符串将被求和,而不是连接。

addslashes

在引号前面加上斜杠。冲用于CVS中转义字符串。

{{ value|addslashes }}  # 如果value是"I'm using Django", 输出将变成 "I\'m using Django"

capfirst

大写变量的第一个字母,如果第一个字符不是字母,该过滤器将不会生效。

{{ value|capfirst }}  # 如果value是"django", 输出将变成"Django"

center

将值置于给定宽度的字段中。

{{ value|center:"15" }}  # 如果value是"Django",输出将会变为"     Django    "

cut

移除value中所有的与给定参数相同的字符串。

{{ value|cut:" " }}  # 如果value为“String with spaces”,输出将为"Stringwithspaces"

date

根据给定格式对一个日期变量进行格式化。
可用的格式字符串及描述:

  • d:每月的某一天,前导零的2位数字
  • j:每月的某一天,没有前导零
  • D:星期几,英文简写的文字
  • l:星期几,完整的英文文字
  • S:每月的英文序数后缀
  • w:星期几,没有前导零的数字
  • z:一年中某一天
  • W:ISO-8601周数,从周一开始
  • m:月份,带有前导零的2位数字
  • n:月份,没有前导零
  • M:月份,英文简写,首字母大写模式
  • b:月份,英文简写,全小写模式
  • F:月份,英文全名
  • y:年份,2位数
  • Y:年份,4位数
  • L:判断是否为闰年
  • o:ISO-8601周标号年份
  • g:小时,12小时格式,不带前导零
  • h:小时,12小时格式,带前导零
  • G:小时,24小时格式,不带前导零
  • H:小时,24小时格式,带前导零
  • i:分钟
  • s:秒数,2位数,带前导零
  • u:微秒
  • a:a.m.或p.m.
  • A:AM或PM

static

用于链接保存在STATIC_ROOT中的静态文件。

default

为变量提供一个默认,若果变量是空字符串,则会显示defalut提供的值。

defalut_if_none

只有值为None,则使用给定的默认值。如果是空字符串也不会使用默认值。

dictsort

获取字典列表并返回按参数中给出的键排序的列表。
假设字典列表为

[
    {'name': 'zed', 'age': 19},
    {'name': 'amy', 'age': 22},
    {'name': 'joe', 'age': 31},
]

使用{{ value|dictsort:"name" }}输出结果为

[
    {'name': 'amy', 'age': 22},
    {'name': 'joe', 'age': 31},
    {'name': 'zed', 'age': 19},
]

dictsortreversed

获取字典列表并返回按参数中给出的键以相反顺序排序的列表。

divisibleby

判断是否被整除,被整除将会返回True,否则返回False。

escape

转义字符串的HTML。
转义仅在字符串输出时应用,因此在链接的过滤器序列中escape的位置无关紧要,就像它是最后一个过滤器。如果要立即应用转义,需使用for_escape过滤器。

escapejs

转义用于JavaScript字符串的字符。确保在使用模板生成JavaScript/json时避免语法错误。

filesizeformat

格式化为只管的文件大小形式(即, “13KB”,“4.1MB”,“102 bytes”)。

{{ value | filesizeformat }}  # 假设value是123456789,那么将输出117.7MB。

first

返回列表中的第一项。

last

与first相反,它将返回列表的最后一项。

length

返回对象的长度。

length_is

判断对象的长度是否等于给定的参数值,返回True或False。

floatformat

当不使用参数时,将浮点数四舍五入到小数点后一位,但前提是要显示小数部分。

value                模板                结果
34.23234    {{ value|floatformat }}     34.2
34.00000    {{ value|floatformat }}     34
34.26000    {{ value|floatformat }}     34.3

如果与整数数字参数一起使用,则将浮点数四舍五入到指定整数位数的小数点。

value                模板                   结果
34.23234    {{ value|floatformat:3 }}     34.232
34.00000    {{ value|floatformat:3 }}     34.000
34.26000    {{ value|floatformat:3 }}     34.260

如果传递的参数为0时,则将浮点数浮动到最接近的整数。

value                模板                   结果
34.23234    {{ value|floatformat:"0" }}     34
34.00000    {{ value|floatformat:"0" }}     34
39.56000    {{ value|floatformat:"0" }}     40

如果传递的参数为负数时,则将一个数字四舍五入到小数点后的位置,但前提是要显示小数部分。

value                模板                     结果
34.23234    {{ value|floatformat:"-3" }}     34.232
34.00000    {{ value|floatformat:"-3" }}     34
34.26000    {{ value|floatformat:"-3" }}     34.260

force_escape

立即转义HTML字符串

get_digit

给定一个整数,返回请求的数字,1表示最右边的数字,2表示第二个最右边的数字,以此类推。

{{ value|get_digit:"2" }}  # 如果value为123456789,那么将输出8

iriencode

将IRI(国际化资源标识符)转换为适合包含在URL中的字符串。

{{ value|iriencode }}
# 若果value是?test=1&me=2,那么将输出?test=1&me=2

join

使用字符串连接列表,与python的"".join()方法类似。

{{ value|join:" // " }}
# 如果value为["a", "b", "c"],那么将输出a // b // c

ljust

给定宽度下的左对齐。

rjust

右对齐给定宽度字段中的值。

lower

将字符串转换位全部小写。

upper

将字符串转换为全部大写的形式。

makelist

将对象转换为字符的列表。对于字符串,直接拆分为单个字符的列表。对于整数,在创建列表之前将参数强制转换为unicode字符串。

phone2numeric

将电话号码(可能包含字母)转换为其等效数字。

random

返回给定列表中的随机项。

safe

将字符串标记为安全,不需要转义。

safeseq

将safe过滤器应用于序列的每个元素。与对序列进行过滤操作仪器使用时非常有用。

{{ some_list|safeseq|join:", " }}

在这种情况下,不能直接使用safe过滤器,因为它首先将变量转换为字符串,而不是使用序列的各个元素。

slice

返回列表的一部分,也就是切片操作。

slugify

转换为ASCII。空格转换为连字符。删除不是字母数字,下划线或连字符的字符,转换为小写,还会去掉前导和尾随空格。

{{ value|slugify }}
# 如果value是Joel is a slug,输出为joel-is-a-slug

striptags

尽可能的去掉HTML中的标签。

time

根据给定的格式,格式化时间。给定格式可以是预定义的TIME_FORMAT,也可以是与date过滤器相同的自定义格式。

{{ value|time:"H:i" }}
# 如果value等于datetime.datetime.now(),输出字符串类似为01:23。

timesince

将日期格式设为自该日期起的时间。

timeuntil

类似于timesince,它测量从现在开始直到给定日期或日期时间的时间。

title

将所有单词的首字母大写,其他字母小写。

truncatechars

如果字符串包含的字符总个数多于指定的字符数量,那么会被阶段掉后面的部分。阶段字符串将以”…”结尾。

truncatechars_html

与truncatechars类似,但是会保留HTML标记。

truncatewords

在一定数量的字数后截断字符串。与truncatechars不同的是,这个字的个数计数,而不是字符计数。

truncatewords_html

类似于truncatewords,但是保留HTML标记。

urlencode

转义要在URL中使用的值。

{{ value|urlencode }}
# 如果value为https://www.example.org/foo?a=b&c=d,输出https%3A//www.example.org/foo%3Fa%3Db%26c%3Dd

urlize

将文字中的网址和电子邮件地址转换为可点击的连接。由urlize生成连接会向其中添加rel="nofollow"属性。

urlizetrunc

将网址和电子邮件地址转换为可点击的链接,和urlize相似,但夹断长度超过给定字符数限制的网址。

wordcount

返回单词的个数。

{{ value|wordcount }}  # 如果value是Joel is a slug,输出4
0条评论

相关推荐

django教程

r

Django 2019-05-20 10:53:53

Celery

celery学习资料

Django 2019-05-25 18:41:55

Django-rest-framework教程

django-rest-framework教程。

Django 2019-07-18 16:33:26

django实用资料

django项目从0到1自己总结的实用的资料,大部分常用的功能这里都有

Django 2019-05-08 18:21:34