在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 }}

结果:

Django 中的 Truncate Filter

 

PS: 标签放在 templatetags 目录下,如果没有,自己新建一个。