1.可以通过过滤器来修改变量的显示,过滤器的形式是:{{ variable | filter }},管道符号’|’代表使用过滤器
2.过滤器能够采用链式的方式使用,例如:{{ text | escape | linebreaks }}
3.过滤器还可以带参数,例如: {{ bio|truncatewords:30 }}
4.过滤器的参数中如果带有空格,那么需要用引号引起来,例如:{{ list | join : “, “}} django中有30多个内置过滤器 比如add,cut,date等。
比如定义一个replace 的标签,其作用是将字符串按照参数替换
首先在你要加载这个tag的app中新建一个python Package,创建一个foll_filter .py
from django import template
from django.template.defaultfilters import stringfilter
from django.utils.safestring import mark_safe
register = template.Library()
@register.filter()# 2 注册 @register.filter(name=cut_filter )
def cut_filter(value, arg): # 3 注册 直接使用函数 cut_filter
return value.replace(arg, '')
#register.filter(name="cut_filter", filter_func=cut_filter) # 1 注册 register.filter
@register.filter()
@stringfilter # 强制转换为字符串
def lower(value):
return value.lower()
@register.filter(is_safe=True) # 1 设置转义 is_safe=True
def add(value, arg):
return mark_safe("%s %s" %(value, arg)) # 2 设置转义 mark_safe
然后在html中加载:
{% load poll_filter %}
{{ "all en" |cut_filter:" " }}
{% with "<h1>hello</h1>" as tmpValue%}
<p>{{ tmpValue|add:"world" }}</p>
{% endwith %}