自定义Template过滤器

时间转换过滤器(将时间转换为天,小时,分钟,), 正则匹配过滤器

在APP下创建目录templatetags, 然后创建一个filter.py

import re
from django import template
from datetime import datetime

register = template.Library()

@register.filter
def url_filter(url):
    regex = re.compile(r"^(http|https).+\.(com|cn|org)/")
    result = regex.match(url)
    if result:
        return result.group()

@register.filter
def time_filter(time):
    seconds = datetime.now().timestamp() - time.timestamp()
    m, s = divmod(seconds, 60)
    h, m = divmod(m, 60)
    d, h = divmod(h, 24)
    if d > 0:
        return ("%s天%s小时" %(int(d), int(h)))
    elif h > 0:
        return ("%s小时%s分钟" %(int(h), int(m)))
    else:
        return ("%s分钟" %int(m))

 

在HTML模板中使用

{% load filter %}
{{ new.href|url_filter }}

{{ new.add_time|time_filter }}

 

效果图:

 

posted @ 2017-06-07 15:13  Vincen_shen  阅读(220)  评论(0)    收藏  举报