Django 中的 Truncate Filter
在1.4版本以前,内置的 Truncate Filter 只有两种:trancatewords 和 trancatewords_html 。 这里的截断过滤器根据空格为分界符,所以就显得不是很灵活!
1.4版本后有了新的filter:truncatechars 。 这个就能满意要求了。
但如果你是1.4版本以前的,不要沮丧,可以自己写一个。
这里举个例子,以截断IP后一段,变成*号 。 比如:192.168.100.100 变成 192.168.100.**
先写一个tag,命名为 truncate_ipaddr.py
from django import template
register = template.Library()
@register.filter("truncate_ipaddr")
def truncate_ipaddr(value):
rightdosh = value.rfind(".")
return value[:rightdosh]+".**"
然后 在Django里引入标签:
{% load truncate_ipaddr %}
代码中使用:
IP: {{ message.ipaddr|truncate_ipaddr }}
结果:
PS: 标签放在 templatetags 目录下,如果没有,自己新建一个。