自己扩展django的过滤器

/* myfilter.py*/

#coding=utf-8

from django import template
import time
register = template.Library()


@register.filter(name='cut')
def cut(value, arg):
    return value.replace(arg, '')

@register.filter
def lower(value):
    return value.lower()

@register.filter
def firstPath(value):
    maps = {"EngineerUser":"engineer", "SaleUser":"sale", "AdminUser":"admin","Operationer":"operation"}
    return maps.get(value, "")
    
@register.filter
def formatTime(t):
    if not t: return ""
    strT = time.strftime("%Y-%m-%d %H:%M", time.localtime(t))
    return strT

@register.filter
def formatShortTime(t):
    if not t: return ""
    strT = time.strftime("%Y-%m-%d", time.localtime(t))
    return strT    


上面是自己扩展django的过滤器,添加自己特有的过滤器,主要语法在上面的黑体粗子, 而@register.filter这个标记,则是Python的装饰器。当你在模板中需要用到自己定义的过滤器时,需要在文件头不写上这样一句话{%load myfilter%},如下的html文件:

mytabel.html:

{% extends "base.html" %}

{%load netbasefilters%}
{% block extra_css %}

{% endblock %}

           

               


                         
                       
                                       
                               
               
                    {% for nt in notes%}
                       
                           
                       
                    {% endfor %}
               
           

                                主题
                                名称/设备IP
                                监控项目
                                工单信息
                                工程师       
                                开始时间 
                                结束时间
                            紧急程度
                         

                                    { {nt.subject}}
                                    { {nt.eventLabel}}
                                    { {nt.monitorObjName}}
                                    {% autoescape off %}{ {nt.content}}{% endautoescape %}
                                    { {nt.engineer.titleOrUid}}
                                    { {nt.startTime|formatShortTime}}
                                    {% if request.REQUEST.status == "1"%}
                                        { {nt.endTime|formatShortTime}}

                                     {% endif %}
                                    { {nt.emergencyDegree}}
                           

就像上面的红色粗体字一样的去使用你的过滤器了

你可能感兴趣的:(Django,django,过滤器,自定义,继承,扩展)