您的位置:首页 > 编程语言 > Go语言

Django-自定义过滤器

2017-03-28 20:46 330 查看
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>{{ tmpVa
7f56
lue|add:"world" }}</p>
{% endwith %}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: