详解Django中的过滤器
就象本章前面提到的一样,模板过滤器是在变量被显示前修改它的值的一个简单方法。过滤器使用管道字符,如下所示:
{{name|lower}}
显示的内容是变量{{name}}被过滤器lower处理后的结果,它功能是转换文本为小写。
过滤管道可以被*套接*,既是说,一个过滤器管道的输出又可以作为下一个管道的输入,如此下去。下面的例子实现查找列表的第一个元素并将其转化为大写。
{{my_list|first|upper}}
有些过滤器有参数。过滤器的参数跟随冒号之后并且总是以双引号包含。例如:
{{bio|truncatewords:"30"}}
这个将显示变量bio的前30个词。
以下几个是最为重要的过滤器的一部分。附录F包含其余的过滤器。
addslashes:添加反斜杠到任何反斜杠、单引号或者双引号前面。这在处理包含JavaScript的文本时是非常有用的。
date:按指定的格式字符串参数格式化date或者datetime对象,范例:
{{pub_date|date:"Fj,Y"}}
格式参数的定义在附录F中。
length:返回变量的长度。对于列表,这个参数将返回列表元素的个数。对于字符串,这个参数将返回字符串中字符的个数。你可以对列表或者字符串,或者任何知道怎么测定长度的Python对象使用这个方法(也就是说,有__len__()方法的对象)。