码迷,mamicode.com
首页 > 其他好文 > 详细

自己扩展django的过滤器

时间:2014-11-25 16:30:50      阅读:236      评论:0      收藏:0      [点我收藏+]

标签: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 %}
<link rel="stylesheet" type="text/css" href="/media/css/serviceNoteList.css" />
{% endblock %}

            <table class="data_table" name="listServiceNotes">

                <thead>
                    <tr>      
                        <th>
                                <span style="width: 15%;" name="subject">主题<em class="downImg updownImg" sortType="{{request.REQUEST.sortType}}"></em></span>
                                <span style="width: 10%;" name="eventLabel">名称/设备IP<em class="downImg updownImg"  sortType="{{request.REQUEST.sortType}}"></em></span>
                                <span style="width: 10%;" name="monitorObjName">监控项目<em class="downImg updownImg"  sortType="{{request.REQUEST.sortType}}"></em></span>
                                <span style="width: 30%;" name="content">工单信息<em class="downImg updownImg"  sortType="{{request.REQUEST.sortType}}"></em></span>
                                <span style="width: 8%;" name="engineer">工程师<em class="downImg updownImg" sortType="-1"></em></span>       
                                <span style="width: 8%;" name="startTime">开始时间<em class="downImg updownImg" sortType="-1"></em></span> 
                                <span style="width: 8%;" name="endTime">结束时间<em class="downImg updownImg" sortType="-1"></em></span>
                            <span style="width: 6%;" name="emergencyDegree">紧急程度<em class="downImg updownImg" sortType="-1"></em></span>
                         </th>
                    </tr>                    
                </thead>                
                <tbody>
                    {% for nt in notes%}
                        <tr class="data_tr" >
                            <td>
                                    <span style="width: 15%;">{{nt.subject}}</span>
                                    <span style="width: 10%;">{{nt.eventLabel}}</span>
                                    <span style="width: 10%;">{{nt.monitorObjName}}</span>
                                    <span style="width: 30%;">{% autoescape off %}{{nt.content}}{% endautoescape %}</span>
                                    <span style="width: 8%;">{{nt.engineer.titleOrUid}}</span>
                                    <span style="width: 8%;">{{nt.startTime|formatShortTime}}</span>
                                    {% if request.REQUEST.status == "1"%}<span style="width: 8%;">
                                        {{nt.endTime|formatShortTime}}</span>
                                     {% endif %}
                                    <span style="width: 6%;">{{nt.emergencyDegree}}</span>
                            </td>
                        </tr>
                    {% endfor %}
                </tbody>
            </table>

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

自己扩展django的过滤器

标签:django   过滤器   自定义   继承   扩展   

原文地址:http://blog.csdn.net/meylovezn/article/details/41482555

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!