随笔- 310  文章- 1  评论- 0  阅读- 85812 
https://docs.djangoproject.com/zh-hans/3.1/howto/custom-template-tags/

代码布局

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

1
2
3
4
5
6
webpage/
    __init__.py
    models.py
    templatetags/
        myfilter.py
    views.py

 

自定义过滤器 

vim myfilter.py

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
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)

 

加载过滤器 

在使用的模板中加载

1
{% load myfilter %}

  

使用

在加载的模板中使用

1
2
3
4
5
6
7
8
9
10
11
<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   boye169  阅读(15)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示