https://docs.djangoproject.com/zh-hans/3.1/howto/custom-template-tags/

代码布局

自定义的 tags 和 filters 会保存在模块名为 templatetags 的目录内。模块文件的名字即稍候你用来加载 tags 的名字,所以小心不要采用一个可能与其它应用自定义的 tags 和 filters 冲突的名字

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

 

自定义过滤器 

vim myfilter.py

from django import template

register = template.Library()

@register.filter
def key(d,key_name):
    value=None
    try:
        value = d.get(key_name)
    except Exception as e:
        print(e)
    return value

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

#register.filter('cut', cut)

 

加载过滤器 

在使用的模板中加载

{% load myfilter %}

  

使用

在加载的模板中使用

  <tbody>
    {%for dict_data in tableInfo.list%}
     <tr>
        
        {% for item in tableInfo.titles %}
            <td>{{dict_data|key:item.field}}</td>
        {%endfor%}
     </tr>
    {%endfor%}
    
  </tbody>

在过滤器 {{ dict_data|key:"bar" }} 中,变量 dict)data 和参数 bar 会传递给过滤器 key。 

 

 

 posted on 2023-08-09 14:28  boye169  阅读(8)  评论(0编辑  收藏  举报