Django内置过滤器
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
为模板过滤器提供参数的方式是:过滤器后价格冒号,在紧跟参数,中间不能有空格!目前只能为过滤器提供一个参数!
1.add
将add后的参数夹value
{{}value | add:"2"}}
如果为4,会输出值为6,过滤器首先会把两个值转换为int类型,如果转换失败会尝试各种方法将两个值相加。
{{ first|add:second }}
如果first是[1, 2, 3],second是[4, 5, 6], 将会输出[1, 2, 3, 4, 5, 6].
2.addslashes
在引号前面加上斜杠,常用于CSV文件转义字符串。
{{value | addslashes }}
如果value是 "I'm using Django",输出将变成"I\'m using Django".
3.capfirst
大写变量的第一个字母,如果第一个字符不是字母,该过滤器将不会生效。
{{value | capfirst }}
如果value是django输出则是"Django"
4.center
在给定的范围内居中
{{value | center:"20"}}
5.cut
移除value中所有的于给定参数相同的字符串。
{{ value | cut:""}}
如果value为“String with spaces”,输出将为"Stringwithspaces"。
6.date
根据给定格式对一个日期变量进行格式化。可用的格式字符串:
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
例如:
{{value | date:"D d M Y"}} {{value | time:"H:i"}}
7.default
为变量提供一个默认值。
{{value | deafult:"nothing"}}
8.default_if_none
如果(且仅当)value为None时,则给定使用的默认值。
{{value| default_if_none:"nothing"}}
9.dictsort
接收一个包含字典元素的列表,并返回按参数中给出的键排序后的列表。
{{value | dictsort:"name"}}
如果value为:
[ {'name': 'zed', 'age': 19}, {'name': 'amy', 'age': 22}, {'name': 'joe', 'age': 31}, ]
那么输出将是:
[ {'name': 'amy', 'age': 22}, {'name': 'joe', 'age': 31}, {'name': 'zed', 'age': 19}, ]
还也可以做更复杂的事情,如:
{% for book in books|dictsort:"author.age" %} * {{ book.title }} ({{ book.author.name }}) {% endfor %}
如果books是
[ {'title': '1984', 'author': {'name': 'George', 'age': 45}}, {'title': 'Timequake', 'author': {'name': 'Kurt', 'age': 75}}, {'title': 'Alice', 'author': {'name': 'Lewis', 'age': 33}}, ]
那么输出将是:
* Alice (Lewis) * 1984 (George) * Timequake (Kurt)
ictsort也可以按指定索引对多维列表进行排序,像这样:
{{ value|dictsort:0 }}
如果value为:
[ ('a', '42'), ('c', 'string'), ('b', 'foo'), ]
那么结果将是:
[ ('a', '42'), ('b', 'foo'), ('c', 'string'), ]
必须提供整数索引,不能是字符串。 以下产生空输出:
{{ values|dictsort:"0" }}
10. dictsortreversed
前面过滤器的反序功能。
11. divisibleby
如果参数被整除,则返回True。
{{ value|divisibleby:"3" }}
如果参数是21,返回True。