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
浙公网安备 33010602011771号