django的自定义filter和自定义simple_tag

一、自定义过滤器     

1、在应用根目录创建一个templatetags包,在该包中保存自己的过滤器

2、注册自定义的过滤器  

3、模板中载入

myfilter.py

from django import template

register = template.Library()
@register.filter(name='key')
def key(value, arg):      
    try :
        red = value[arg]
    except KeyError:
        red = 0
    return red

html

{%load myfilter%}
<tr class="altrow">           
  <td>1</td>              
  <td>key2</td>           
  <td>{{ dicts|key:"key2" }}  
  </td>           
</tr>         

注意:

  • templatetags包必须有__init__.py文件
  • 过滤器必须在应用(已添加到 INSTALLED_APPS)中

示例:

它应该和models.py,views.py等在同一级,例如:

polls/  
    models.py  
    templatetags/ 
        myfilter.py
     __init__.py 
    views.py  

二.自定义simpletag:

1.MyTag.py文件
    @register.simple_tag
    def simple_tag_multi(num1,num2):
        return num1*num2
    2.html中调用
    <p>{%  simple_tag_multi 12 3 %}</p>

 

django的自定义filter和自定义simple_tag
自定义filter:
    自定义filter:
    
    简单示例:自定义乘法filter:
    
    1.在应用中新建包templatetags
    2.新建自定义python文件在templatetags  比如新建MyTag.py文件
    3.在MyTag.py新建自定义的规则
    from django import template
 
    register=template.Library()    #固定变量名
 
    @register.filter
    def multi(num1,num2):
        return num1*num2
    
    4.html中调用
    
    <p>{{ l.2|multi:2 }}</p>

 

posted @ 2018-08-29 16:14  逐梦客!  阅读(298)  评论(0)    收藏  举报